문제

  1. 출력값?
var add = function calc(x,y){
    if(y===0){
        return x;
    }else{
        return 1+ calc(x,y-1);
    }
};

console.log(add(3,5)); //8
  1. 출력값?
function add(x,y){
    return x+y;
}

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

console.log(add(2,5));//7
console.log(sub(2,5));//7
  1. 호이스팅에 대한 다음 설명 중 올바르지 않은것 모두 고르기

    1. 함수 선언은 호이스팅되지만, 함수 표현식은 호이스팅되지 않는다.
    2. 변수와 함수 선언은 선언된 위치와 상관없이 어디서든지 참조할 수 있다.
    3. 함수 선언문은 변수 선언문과 달리 코드 실행 전에 JavaScript 엔진에 의해 처리된다.
    4. 함수 표현식 이전에 함수를 참조하면 undefined로 평가되는 것은 변수 호이스팅이 발생하기 때문이다.

    정답: b,c