ES6使用let命令更簡單的實現(xiàn)塊級作用域?qū)嵗治?/h1>
更新時間:2017年03月31日 08:48:50 作者:柒青衿
這篇文章主要介紹了ES6使用let命令更簡單的實現(xiàn)塊級作用域,結(jié)合實例形式分析了ES6中l(wèi)et命令與var的區(qū)別及具體使用方法,需要的朋友可以參考下
本文實例講述了ES6使用let命令更簡單的實現(xiàn)塊級作用域。分享給大家供大家參考,具體如下:
let 帶來了更簡單的塊級作用域
1. ES6新增了let命令,用于聲明變量。其與var的不同在于,用let聲明的變量只在 { } 內(nèi)有效。這使得我們可以很方便的實現(xiàn)塊級作用域,不再使用立即實行函數(shù)。
{
let a=1;
var b=2;
}
console.log(a); //undefined
console.log(b); //2
在for循環(huán)中使用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. 暫時性死區(qū)(Temporal Dead Zone)
只要塊級作用域內(nèi)有l(wèi)et,let 聲明的變量不受全局同名變量的影響,如果想要在塊級作用域內(nèi)使用let 聲明的變量,只能為其賦值。
var a=1;
if(true){
a=2;
let a; //Uncaught ReferenceError: a is not defined
}
4. 不允許在一個塊級作用域內(nèi)重復聲明一個變量
不管是var與let重復聲明,還是let與let重復聲明,都會報錯。
希望本文所述對大家ECMAScript程序設計有所幫助。
相關文章
-
微信小程序中this.data與this.setData的區(qū)別詳解
這篇文章主要給大家介紹了關于微信小程序中this.data與this.setData區(qū)別的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起看看吧 2018-09-09
-
Javascript頁面跳轉(zhuǎn)常見實現(xiàn)方式匯總
這篇文章主要介紹了Javascript頁面跳轉(zhuǎn)常見實現(xiàn)方式,結(jié)合實例匯總分析了JavaScript常用的七種頁面跳轉(zhuǎn)實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下 2015-11-11
-
AJAX使用了UpdatePanel后無法使用alert彈出腳本
今天在做項目的時候發(fā)現(xiàn)個問題。。使用UpdatePanel后alert腳本就要報錯了。
2010-04-04
-
設置jsf的選擇框h:selectOneMenu為不可編輯狀態(tài)的方法
本文為大家詳細介紹下如何設置jsf的選擇框h:selectOneMenu為不可編輯狀態(tài),具體實現(xiàn)代碼如下,希望對大家有所幫助 2014-01-01
最新評論
本文實例講述了ES6使用let命令更簡單的實現(xiàn)塊級作用域。分享給大家供大家參考,具體如下:
let 帶來了更簡單的塊級作用域
1. ES6新增了let命令,用于聲明變量。其與var的不同在于,用let聲明的變量只在 { } 內(nèi)有效。這使得我們可以很方便的實現(xiàn)塊級作用域,不再使用立即實行函數(shù)。
{ let a=1; var b=2; } console.log(a); //undefined console.log(b); //2
在for循環(huán)中使用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. 暫時性死區(qū)(Temporal Dead Zone)
只要塊級作用域內(nèi)有l(wèi)et,let 聲明的變量不受全局同名變量的影響,如果想要在塊級作用域內(nèi)使用let 聲明的變量,只能為其賦值。
var a=1; if(true){ a=2; let a; //Uncaught ReferenceError: a is not defined }
4. 不允許在一個塊級作用域內(nèi)重復聲明一個變量
不管是var與let重復聲明,還是let與let重復聲明,都會報錯。
希望本文所述對大家ECMAScript程序設計有所幫助。
相關文章
微信小程序中this.data與this.setData的區(qū)別詳解
這篇文章主要給大家介紹了關于微信小程序中this.data與this.setData區(qū)別的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起看看吧2018-09-09Javascript頁面跳轉(zhuǎn)常見實現(xiàn)方式匯總
這篇文章主要介紹了Javascript頁面跳轉(zhuǎn)常見實現(xiàn)方式,結(jié)合實例匯總分析了JavaScript常用的七種頁面跳轉(zhuǎn)實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-11-11AJAX使用了UpdatePanel后無法使用alert彈出腳本
今天在做項目的時候發(fā)現(xiàn)個問題。。使用UpdatePanel后alert腳本就要報錯了。2010-04-04設置jsf的選擇框h:selectOneMenu為不可編輯狀態(tài)的方法
本文為大家詳細介紹下如何設置jsf的選擇框h:selectOneMenu為不可編輯狀態(tài),具體實現(xiàn)代碼如下,希望對大家有所幫助2014-01-01