JS 호이스팅, 변수의 범위(scope), 클로저
호이스팅 변수나 함수의 선언이 해당 범위(scope)에서 최상단으로 옮겨지는 것 변수선언 부분이 아래와 같이 옮겨진다 변수의 범위 전역 변수의 선언은 window에 속한다(window는 브라우저를 의미) 지역 변수의 선언은 (블럭범위 없음) 지역변수 함수 전체에서 유효 함수호출을 해야 전역변수가 만들어짐 변수앞에 var를 꼭 쓰자 함수-유효성검사 호출시 인자가 생략될 수 있으므로 if문으로 확인 후 기본값을 넣어주자. 널 체크할 때는 undefined인지 먼저 확인하자.(undefined는 null이 아님) 함수-클로저 (1) 전역변수로 선언하면 변수이름이 충돌될 수 있고, 외부에서 접근 못하게 값을 보호할 필요가 있음. (2) 지역변수로 선언하면 변수가 보호되긴 하지만 매번 0으로 초기화 됨 (3) 변수를 지역변수로 하고, 내부함수로 변경. 내부함수라서 외부에서 호출 불가 (4) 내부함수를 반환하여, 외부에서 호출할 수 있도록 변경. (5) 콜백함수가 외부변수를 사용하면 의도와 …