자바스크립트 하자
let
키워드는
ES6 (2015) 에 도입되었습니다 .
로 정의된 변수 let
는 재선언할 수 없습니다.
로 정의된 변수 let
는 사용 전에 선언되어야 합니다.
로 정의된 변수 let
에는 블록 범위가 있습니다.
재선언 불가
로 정의된 변수 는 다시 선언let
할 수 없습니다 .
실수로 변수를 다시 선언할 수 없습니다.
당신 과 함께 let
할 수 없습니다:
예시
let x = "John Doe";
let x = 0;
// SyntaxError: 'x' has already been declared
당신 과 함께 var
할 수 있습니다:
예시
var x = "John Doe";
var x = 0;
블록 범위
ES6(2015) 이전에는 JavaScript에 전역 범위 와 함수 범위 만 있었습니다 .
ES6에는 두 가지 중요한 새 JavaScript 키워드인 let
및 가 도입되었습니다 const
.
이 두 키워드는 JavaScript에서 블록 범위 를 제공합니다.
{ } 블록 내부에 선언된 변수는 블록 외부에서 액세스할 수 없습니다.
예시
{
let x = 2;
}
// x can NOT be used here
키워드 로 선언된 변수 var
는 블록 범위를 가질 수 없습니다.
{ } 블록 내부에 선언된 변수는 블록 외부에서 액세스할 수 있습니다.
예시
{
var x = 2;
}
// x CAN be used here
변수 재선언
키워드를 사용하여 변수를 다시 선언하면 var
문제가 발생할 수 있습니다.
블록 내부의 변수를 다시 선언하면 블록 외부의 변수도 다시 선언됩니다.
예시
var x = 10;
// Here x is 10
{
var x = 2;
// Here x is 2
}
// Here x is 2
키워드를 사용하여 변수를 다시 선언하면 let
이 문제를 해결할 수 있습니다.
블록 내부의 변수를 다시 선언해도 블록 외부의 변수는 다시 선언되지 않습니다.
예시
let x = 10;
// Here x is 10
{
let x = 2;
// Here x is 2
}
// Here x is 10
브라우저 지원
키워드 는 let
Internet Explorer 11 또는 이전 버전에서 완전히 지원되지 않습니다.
다음 표는 let
키워드를 완벽하게 지원하는 첫 번째 브라우저 버전을 정의합니다.
Chrome 49 | Edge 12 | Firefox 44 | Safari 11 | Opera 36 |
Mar, 2016 | Jul, 2015 | Jan, 2015 | Sep, 2017 | Mar, 2016 |
재선언
를 사용하여 JavaScript 변수를 다시 선언하는 var
것은 프로그램의 모든 위치에서 허용됩니다.
예시
var x = 2;
// Now x is 2
var x = 3;
// Now x is 3
를 사용 let
하여 동일한 블록에서 변수를 다시 선언하는 것은 허용되지 않습니다.
예시
var x = 2; // Allowed
let x = 3; // Not allowed
{
let x = 2; // Allowed
let x = 3 // Not allowed
}
{
let x = 2; // Allowed
var x = 3 // Not allowed
}
다른 블록에서 로 변수를 다시 선언하면 let
IS가 허용됩니다.
예시
let x = 2; // Allowed
{
let x = 3; // Allowed
}
{
let x = 4; // Allowed
}
게양하자
로 정의된 변수 var
는 맨 위로 올라가며 언제든지 초기화할 수 있습니다.
의미: 변수를 선언하기 전에 사용할 수 있습니다.
예시
괜찮습니다.
carName = "Volvo";
var carName;
호이스팅에 대해 더 알고 싶다면 JavaScript 호이스팅 장을 공부하십시오 .
로 정의된 변수 let
도 블록의 맨 위로 호이스팅되지만 초기화되지는 않습니다.
의미: let
변수를 선언하기 전에 사용하면 다음과 같이 됩니다
ReferenceError
.
예시
carName = "Saab";
let carName = "Volvo";