자바스크립트 함수선언문, 함수표현문 -4

2018-03-17
function a(){ // 함수선언문
    return 'a';
}

var b = function bb(){ // 기명 함수표현식
    return 'bb';
}
var c = function() { // 익명 함수표현식
    return 'c';
}

이전의 브라우저는 익명함수표현식을 사용한다면 디버깅이 어려웠지만 현재는 익명함수도 디버깅 시에 무리 없다

var c = function(){
    return'c';
}
// 변수 c선언
// 익명함수 선언
// 변수 c에 익명함수를 할당

선언한 함수를 변수에 할당하는것이 함수 표현식

둘의 차이는 ‘할당’

할당을 하지않으면 전체가 호이스팅

할당하면 변수만 호이스팅

function sum(a, b){
    return `${a} + ${b} = ${a+b}`;
}
/* 중략 */
function sum(a,b){
    return a+b;
}
sum(3,4);

// 호이스팅에 의해 아래 sum함수만 실행됨

함수표현식을 사용하면 안전하고 예측가능하다.