문법
변수 1 = value1을하자
매개 변수
변수 1
선언 할 변수의 이름입니다.
value1
변수에 할당 된 초기 값.
주목
let 문을 사용하여 범위가 선언되는 블록으로 제한되는 변수를 선언하십시오. 변수를 선언 할 때 변수에 값을 할당하거나 스크립트 후반에 변수에 값을 할당 할 수 있습니다.
LET를 사용하여 선언 된 변수는 선언 전에 사용할 수 없습니다. 그렇지 않으면 오류가 발생합니다.
LET 명령문에서 변수가 초기화되지 않으면 정의되지 않은 JavaScript 값이 자동으로 할당됩니다.
예:
var l = 10; {let l = 2; //이 시점에서 L = 2.} //이 시점에서 L = 10.// let.let index; let name = "Thomas Jefferson"; let assh = 42, counter, numpages = 10; let myArray = new array ();블록 레벨 범위
for (var i = 0; i <10; i ++) {} console.log (i); // 10for (j = 0; j <10; j ++) {} console.log (j); // "referenceError : j는 정의되지 않았습니다가변 프로모션이 없습니다
Console.log (a); // output undefinedConsole.log (b); // Error ReferenceErrorConsole.log (c); // ERROR referenceERRORVAR a = 2; b = 2;
정의되지 않은 것과 참조 오류의 차이점에주의하십시오
임시 데드 존 (TDZ)
현재 블록 레벨 범위를 입력하는 한 이미 사용 된 변수는 존재하지만 선언 전에 죽은 구역이므로 작동 할 수 없습니다.
참고 : TypeOf는 더 이상 100% 안전한 작동이 아닙니다
유형 X; // referenceErrortype의 y // undefinedlet x;
반복 된 진술은 허용되지 않습니다
x = 1을하자; x; // "syntaxError : 식별자 'X'는 이미 선언되었습니다. y = 2; var y = 3; // y = 3
블록 레벨 범위
// 익명 함수 쓰기 (function () {var tmp = ...; ...} ()); // 블록 레벨 스코프 쓰기 {let tmp = ...; ...}ES5의 엄격한 모드는 기능이 최상위 범위 및 기능 내에서만 선언 될 수 있다고 규정하고 있으며 다른 상황 (코드 블록, 루프 코드 블록)이 오류를보고합니다.
// es5'use strict '; if (true) {function f () {} // 오류보고}}ES6은 블록 레벨 범위를 도입하기 때문에이 상황은 블록 레벨 범위 내에서 선언 된 함수로 이해 될 수 있으므로 오류는보고되지 않았지만 블록을 구성하는 버팀대는 누락 될 수 없습니다.
// 'Strict 사용'; if (true) 함수 f () {} 오류를보고합니다.선언 된 글로벌 변수는 더 이상 창의 속성이 아닙니다.
"엄격한 사용"; var a = 1; console.log (window.a) // 1let b = 1; console.log (window.b) // 정의되지 않은