함수(function)

함수선언문으로 함수를 선언 했을 때는 함수호이스팅으로 함수가 선언, 초기화, 할당이 한 번에 이뤄지지만 함수표현식으로 함수를 생성했을 때는 변수호이스팅이므로 할당을 나중에 이뤄진다.

함수에서 length 프로퍼티는 함수 정의 시 작성된 매개변수 갯수를 의미한다.

function foo() {}
console.log(foo.length); // 0

function bar(x) {
  return x;
}
console.log(bar.length); // 1

function baz(x, y) {
  return x * y;
}
console.log(baz.length); // 2

name프로퍼티는 함수명을 반환한다. 이때 함수표현식으로 했을 경우 빈문자열을 반환

// 기명 함수 표현식(named function expression)
var namedFunc = function multiply(a, b) {
  return a * b;
};
// 익명 함수 표현식(anonymous function expression)
var anonymousFunc = function(a, b) {
  return a * b;
};

console.log(namedFunc.name);     // multiply
console.log(anonymousFunc.name); // ''

프로토타입하기