var, const, let 차이점
7691 단어 JavaScriptjsJavaScript
1. var , let , const
var
문은 변수를 선언하고, 선택적으로 초기화할 수 있다.
참조 문서 MDN
var x = 1;
if (x === 1) {
var x = 2;
console.log(x);
// expected output: 2
}
console.log(x);
// expected output: 2
const
선언은 블록 범위의 상수를 선언합니다. 상수의 값은 재할당할 수 없으며 다시 선언할 수도 없습니다
참조문서 MDN
const number = 42;
try {
number = 99;
} catch (err) {
console.log(err);
// expected output: TypeError: invalid assignment to const `number'
// Note - error messages will vary depending on browser
}
console.log(number);
// expected output: 42
let
구문은 블록 유효 범위를 갖는 지역 변수를 선언하며, 선언과 동시에 임의의 값으로 초기화할 수도 있다.
참조문서 MDN
let x = 1;
if (x === 1) {
let x = 2;
console.log(x);
// expected output: 2
}
console.log(x);
// expected output: 1
2. 세가지 선언 방법의 차이점
-
var
는 함수 레벨 스코프이고let
,const
는 블럭 레벨 스코프. -
var
로 선언한 변수는 선언 전에 사용해도 에러가 나지 않지만let
,const
는 에러가 발생. -
var
는 이미 선언되어있는 이름과 같은 이름으로 변수를 또 선언해도 에러가 나지 않지만let
,const
는 이미 존재하는 변수와 같은 이름의 변수를 또 선언하면 에러가 납니다. -
var
,let
은 변수 선언시 초기 값을 주지 않아도 되지만const
는 반드시 초기값을 할당해야 합니다. -
var
,let
은 값을 다시 할당할 수 있지만const
는 한번 할당한 값은 변경할 수 없습니다(단, 객체 안에 프로퍼티가 변경되는 것까지 막지는 못합니다).
3. 정리하며... 👏
var
는 변수를 재 선언 해도 에러가 발생하지 않는다.
var name = 'king'
console.log(name) // king
var name = 'th'
console.log(name) // th
유연한 변수 선언으로 간단한 테스트에는 편리 하지만, 코드량이 많아 진다면 어디에서 어떻게 사용 될지도 파악하기 힘들 수 있다.
그래서 ES6 이후, const
와 let
이 추가 되었다.
선언 방식만 바꾸어 본다.
const name = 'king'
console.log(name) // king
cosnt name = 'th'
console.log(name)
// "SyntaxError: Unexpected identifier
let name = 'king'
console.log(name) // king
let name = 'th'
console.log(name)
// "SyntaxError: Unexpected identifier
둘 다 변수 재 선언이 불가능 하다.
그럼 const
와 let
의 차이점이 무엇일까?
const
는 재할당이 불가능하고,
let
은 재할당이 가능하다.
Author And Source
이 문제에 관하여(var, const, let 차이점), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kingth/Javascript-var-const-let저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)