모던 자바스크립트 Deep Dive 12장 : 함수

jaejin·2024년 3월 3일

12장 함수

12.4 함수 정의

12.4.1 함수 선언문

function add(x,y){
	return x + y;
}
  • 자바스크립트 엔진은 생성된 함수를 호출하기 위해 함수 이름과 동일한 이름의 식별자를 암묵적으로 생성하고, 거기에 함수 객체를 할당한다.
  • 함수는 함수 이름으로 호출하는 것이 아니라 함수 객체를 가리키는 식별자로 호출한다.

12.4.3 함수 생성 시점과 함수 호이스팅

  • 함수 호이스팅은 함수를 호출하기 전에 반드시 함수를 선언해야 한다는 당연한 규칙을 무시하기 때문에 함수 선언문 대신 함수 표현식의 사용이 권장된다.

12.4.4 Function 생성자 함수

  • Function 생성자 함수로 함수를 생성하는 방식은 일반적이지 않으며 바람직하지도 않다.

12.4.5 화살표 함수

  • 화살표 함수는 기존의 함수 선언문 또는 함수 표현식을 완전히 대체하기 위해 디자인된 것은 아니다.
  • 기존의 함수보다 표현만 간략한 것이 아니라 내부 동작 또한 간략화되어 있다.

12.5 함수 호출

12.5.1 매개변수와 인수

function add(x,y){
  console.log(arguments);
  // Arguments(3) [2, 5, 10, callee: f, Symbol(Symbol.iterator): f]
  
  return x+y;
}

add(2, 5, 10);
  • 모든 인수는 암묵적으로 arguments 객체의 프로퍼티로 보관된다.

12.5.4 반환문

  • return 키워드 뒤에 반환값으로 사용할 표현식을 명시적으로 지정하지 않으면 undefined가 반환된다.
profile
jjlabsio

0개의 댓글