이번에 debubber; 사용법을 다시 명확하게 이해했다.
- var : javascript 엔진은 기본적으로 함수단위로 자신만의 scope를 가진다. (block 범위를 벗어나도 사용이 가능하다.)
--> function scope
- let : block scope. 재선언 불가능.
- const : block scope. constant variable. 값이 변하지 않는 변수=상수를 정의할 때, 재할당/재정의 불가능.
for(var i = 0; i < 5; i++){ console.log(i); //다섯번 iteration } console.log('final i:', i); //5 --- i++증감을 한 뒤 출력 // // for(let i = 0; i < 5; i++){ console.log(i); //다섯번 iteration } console.log('final i:', i); //Error```
이번에 debubber; 사용법을 다시 명확하게 이해했다.
검사하고 싶은 위치에 디버거를 찍고 코드 실행이 되는지, 안된다면 어떤 이유에서 안되는지 확인해볼 수 있다.
function greetSomeone(firstName){
let time = 'night';
if(time === 'night'){
let greeting = 'Good Night';
debugger; // (block 내부에서는 작동함을 알 수 있음)
}
return greeting + ' ' + firstName;
}
greetSomeone('Steve'); // reference error: greeting is not defined
global scope(전역 범위)를 대표하는 객체 :
global scope에서 선언된 함수, var 로 선언된 변수는 window 객체와 연결된다.