Fundamentals Part 3

sun·2021년 9월 8일

# 메서드와 함수

  • 메서드와 함수의 차이는 전자는 객체에 종속되나 후자는 아니라는 점
  • 메서드는 객체의 프로퍼티 값에 접근할 수 있음

# scope란?

  • 1) 현재 실행되고 있는 2) 값과 표현식이 유효하거나 참조할 수 있는 컨텍스트
  • 변수 혹은 표현식이 해당 스코프 내에 있지 않다면 사용 불가
  • 계층적인 구조를 지니므로 하위 스코프는 상위 스코프에 접근할 수 있으나 반대는 불가
  • 하위 스코프에서 상위 스코프의 변수의 값을 변경할 수 있음
	let upper = "upper";
	fuction change_upper() {
      	  upper = "lower";
   	}
	alert(upper);  // upper 
	change_upper();
	alert(upper);  // lower 
  • 하위 스코프에 상위 스코프와 동일한 이름의 변수가 있을 경우 상위 스코프의 변수는 무시됨
	let lower = "upper";
	function same_name() {
      	  let lower = "lower";
      	  alert(lower);
      	}
	same_name();  // lower
	alert(lower);  // upper

# 함수 선언 vs 함수 표현식

함수 선언

function mul(a, b) {
  return a * b;
}

함수 표현식

let mul = function(a, b) {
  return a + b;
};
함수 선언문함수 표현식
문법독립된 구문표현식의 일부
생성 시점코드 블록 실행 전실행 흐름이 표현식에 도달했을 때
스코프함수가 선언된 코드 블록 안에서만 유효할당을 통해 상위 스코프에서도 접근 가능

함수 표현식은 구문의 일종이고 여기서 익명 함수 선언은 코드블록이 아닌 값처럼 취급되므로 구문 종료 시 ';'을 붙여주어야 함


참고

profile
☀️

0개의 댓글