javascript, jQuery & Node.js/Node.js 사용전 자바스크립트
const, let, 블록 스코프, 호이스팅 / ES2015 & ES6 - 01
yy_dd2
2022. 4. 19. 04:12
반응형
onst, let, 블록 스코프, 호이스팅
* 블록 스코프(범위)
if(true) {
var x = 3;
}
console.log(x);
if(true){
const y = 3;
}
console.log(y);
// VM333:4 Uncaught ReferenceError: y is not defined
var로 사용한 x는 에러가 없지만
const로 사용한 y를 사용하니 에러가 발생한다
이유는 const는 블록스코프를 가지기 때문에 {} 안에서만 사용이 가능하다
var 는 함수 스코프이다
var 대신 cosnt와 let을 사용하면 호이스팅 문제가 해결되고 코드 관리가 수월하다고한다
(호이스팅 : var 로 선언한 변수의 경우 호이스팅 시 undefined 로 변수를 초기화 된다)
* const와 let의 차이
const a = 0;
a = 1;
// VM382:1 Uncaught TypeError: Assignment to constant variable.
let b = 0
b = 1;
1
const c;
// VM444:1 Uncaught SyntaxError: Missing initializer in const declaration
const는 상수 : 한번 값을 할당하면 다른 값을 할당할 수 없다.
let은 다른 값을 할당해야하는 상황이 발생 할 때 사용하면 된다.
반응형