자바스크립트의 변수 및 상수 선언 키워드 입니다.
-> 초기 자바스크립트는 변수 선언을 var
만을 사용 했습니다.
var a = "a";
function example() {
var b = "b";
console.log(a); // a 전역변수. 출력가능.
if (true) {
var c = "c";
console.log(b); // b - 해당 함수 내 선언한 변수. 출력 가능.
}
console.log(c); // c - 해당 함수 내 선언한 변수. 출력 가능.
}
example();
var name = "kim";
console.log(name); // kim
var name = "lee";
console.log(name); //lee
var a = 10;
a = 20;
console.log(a); // 20
function sayHi() {
phrase = "Hello";
alert(phrase);
var phrase;
}
sayHi();
-> ES6(ES2015)부터 let과 const가 추가 되었습니다.
let a = 10;
let a = 20; // SyntaxError: Identifier 'a' has already been declared
let b = 111;
b = 222;
console.log(b); // 222
블럭 레벨 스코프(Block Level Scope)
let a = "a";
function example() {
let b = "b";
console.log(a); // a 전역변수. 출력 가능
if (true) {
let c = "c";
console.log(b); // b 해당 함수 내 선언한 변수. 출력 가능
}
console.log(c); // ReferenceError: c is not defined
}
example();
-> 한 번 값을 선언하면 절대 바뀌지 않습니다. (상수)
const b = 10;
const b = 20; // SyntaxError: Identifier 'b' has already been declared
const c = 111;
c = 222; // TypeError: Assignment to constant variable.
블럭 레벨 스코프(Block Level Scope)