let 帶來了更簡單的塊級作用域
1. es6新增了let命令,用於宣告變數。其與var的不同在於,用let宣告的變數只在 內有效。這使得我們可以很方便的實現塊級作用域,不再使用立即實行函式。
console.log(a); //undefined
console.log(b); //2
在for迴圈中使用let可以有效避免全域性變數汙染。
2. let不會變數提公升。也就是說,如果你使用var ,可以先使用變數再定義變數(注意:變數提公升只提公升宣告不提公升賦值操作),但是如果你使用let定義變數則必須先定義後使用,否則會報錯。
console.log(a);//報錯:uncaught referenceerror: a is not defined
console.log(b); //undefined
let a=1;
var b=2;
3. 暫時性
死區(temporal dead zone)
只要塊級作用域內有let,let 宣告的變數不受全域性同名變數的影響,如果想要在塊級作用域內使用let 宣告的變數,只能為其賦值。
var a=1;
if(true)
4. 不允許在乙個塊級作用域內重複宣告乙個變數
不管是var與let重複宣告,還是let與let重複宣告,都會報錯。
ES6 let宣告變數(簡單易懂)
let關鍵字宣告變數是在es6中引入的 使用let宣告變數主要有以下特點 1 使用let宣告的變數具有塊級作用域 if true console.log a a is not defined2 使用let宣告的變數沒有變數提公升 console.log a let a 10 cannot acces...
es6 let命令的基本用法
首先,let命令是es6新增的,也是用來宣告變數的,但它與var不同的是 只在let命令所在的 塊內有效 換一句話說就是 let命令宣告的變數只在當前作用域內有效 包括它的子作用域 那麼結合它的特徵概括起來就是 let是es6用來宣告只在當前作用域內有效,不存在變數提公升,不能重複宣告的,會形成暫時...
ES6 let變數與var變數的區別
一,let不存在變數提公升,可以理解為let變數在使用前必須先宣告再使用不存在預解析,否則就會報錯,而var宣告的變數存在預解析即變數提公升,舉個例子 這段 的結果為undefine,原因為瀏覽器在解析 時,會先解析變數a然後逐步載入 即解析過程為 當使用let宣告變數a時,瀏覽器則會直接報錯,這是...