Skip to content

Latest commit

 

History

History
67 lines (54 loc) · 2 KB

File metadata and controls

67 lines (54 loc) · 2 KB

인사이드 자바스크립트 P.72 ~ 78

14. 함수 정의

함수를 생성하는 방법은 크게 3가지다. 각각의 방식에 따라 함수 동작이 미묘하게 차이가 난다.

  • 함수 선언문
  • 함수 표현식
  • Function() 생성자 함수

14.1 함수 리터럴

function add(x,y){
    return x + y;
}

함수 리터럴은 크게 4가지로 구분된다.
1. function 키워드 : 자바스크립트 함수 리터럴은 function 키워드로 시작한다. 
2. 함수명 : 함수명은 함수 몸체의 내부 코드에서 자신을 재귀적으로 호출하거나 또는 자바스크립트 디버거가 해당함수를 구분하는 식별자로 사용된다. (함수명은 선택사항임)
3. 매개변수 리스트
4. 함수 몸체 : 실제 함수가 호출 됐을  실행되는 코드 부분.

14.2 함수 선언문

함수 선언문은 반드시 함수명이 정의되어 있어야 한다.

//add() 함수 선언문
function add(x,y){
    return x + y;
};

console.log(3,4); // 출력값 7

14.3 함수 표현식

생성된 함수를 변수에 할당하여 함수를 생성하는 법

//add() 함수 표현식
var add = function(x,y){
    return x + y;
};

var plus = add;
console.log(add(3,4)); // 출력값 7
console.log(plus(4,4)); // 출력값 8

 변수 add와 plus는 같은 익명함수를 참조한다.

이름 없는 함수 : 익명함수
이름 있는 함수 : 기명함수

//기명 함수 표현식의 함수 호출 방법
var add = function sum(x,y){
    return x + y;
};

console.log(add(3,4)); // 출력값 7
console.log (sum(3,4)); // 출력값 Uncaught ReferenceError : sum is not defined 에러 발생

 함수 표현식에서 사용된 함수 이름이 외부 코드에서 접근 불가능하기 때문에 에러가 발생함.

14.4 Function() 생성자 함수를 통한 함수 생성하기 (잘 사용하지 않음)

var add = new Function('x','y', 'return x + y');

console.log(add(3,4)); // 출력값 7