ES6 let帶來了更簡單的塊級作用域

2021-07-10 23:15:48 字數 721 閱讀 3953

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時,瀏覽器則會直接報錯,這是...