ES6?關(guān)鍵字?let?和?ES5?及關(guān)鍵字?var?的區(qū)別解析
var 關(guān)鍵字
在 ES5 及以前,通過(guò)var
在塊級(jí)作用域中聲明的變量,外邊也可以訪問(wèn)。塊級(jí)作用域就是一對(duì){}
的作用域;塊級(jí)作用域可以是控制語(yǔ)句的作用域,也就是非函數(shù)的作用域。
function f() { { var x = 10; } console.log(x); // => 10 }
在 for 循環(huán)體中的變量 i,可以被打印出來(lái),假如因?yàn)榇a過(guò)多,不知道何時(shí)間變量重命名了,只有運(yùn)行時(shí)才報(bào)錯(cuò)。又因?yàn)橹挥泻瘮?shù)才可以創(chuàng)建一個(gè)塊級(jí)作用域,所以,針對(duì)于上面出現(xiàn)的問(wèn)題,就要通過(guò) IIFE
來(lái)創(chuàng)建一個(gè)塊級(jí)作用域。Ben Alman 將它命名為立即執(zhí)行的函數(shù)表達(dá)式(IIFE):
function iife() { (function () { for (var i = 10; i > 0; i--) {} })(); console.log(i); // => Uncaught ReferenceError: i is not defined }
let 關(guān)鍵字
var
可以穿透控制語(yǔ)句、條件語(yǔ)句這樣的作用域,導(dǎo)致變量沖突經(jīng)常發(fā)生。所以,ES6 的let
就可以很好的解決我們的煩惱,這也是為什么現(xiàn)在推薦使用let
來(lái)聲明變量,而非var
。
function f() { for (var i = 10; i > 0; i--) {} console.log(i); // => Uncaught ReferenceError: i is not defined }
補(bǔ)充
如果不給 IIFE 函數(shù)加上分號(hào),啟用格式化代碼之后可能導(dǎo)致兩個(gè) IIFE 函數(shù)連在一起:
(function () { // ... })()(function () { // ... })();
可以通過(guò)!
或void
來(lái)避免:
!(function () { // ... })() void (function () { // ... })()
到此這篇關(guān)于ES6 關(guān)鍵字 let 和 ES5 及以前關(guān)鍵字 var 的區(qū)別的文章就介紹到這了,更多相關(guān)ES6 關(guān)鍵字 let 和 ES5內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JavaScript實(shí)現(xiàn)的搜索及高亮顯示功能示例
這篇文章主要介紹了JavaScript實(shí)現(xiàn)的搜索及高亮顯示功能,涉及javascript字符遍歷與頁(yè)面元素屬性相關(guān)操作技巧,需要的朋友可以參考下2017-08-08多個(gè)js與css文件的合并方法詳細(xì)說(shuō)明
在Web項(xiàng)目的開(kāi)發(fā)中,js,css文件會(huì)隨著項(xiàng)目的開(kāi)發(fā)變得越來(lái)越多,越來(lái)越大,這就給給性能方面帶來(lái)一些問(wèn)題;解決該問(wèn)題的一個(gè)好的方法就是合并js,css文件需要了解的朋友可以參考下2012-12-12利用js給datalist或select動(dòng)態(tài)添加option選項(xiàng)的方法
下面小編就為大家分享一篇利用js給datalist或select動(dòng)態(tài)添加option選項(xiàng)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-01-01使用mock.js隨機(jī)數(shù)據(jù)和使用express輸出json接口的實(shí)現(xiàn)方法
這篇文章主要介紹了使用mock.js隨機(jī)數(shù)據(jù)和使用express輸出json接口的實(shí)現(xiàn)方法,需要的朋友可以參考下2018-01-01js實(shí)現(xiàn)特別簡(jiǎn)單的鐘表效果
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)特別簡(jiǎn)單的鐘表效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-09-09淺談layui 數(shù)據(jù)表格前后臺(tái)傳值的問(wèn)題
今天小編就為大家分享一篇淺談layui 數(shù)據(jù)表格前后臺(tái)傳值的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09javascript簡(jiǎn)寫(xiě)常用的12個(gè)技巧(可以大大減少你的js代碼量)
這篇文章主要跟大家分享了javascript簡(jiǎn)寫(xiě)常用的12個(gè)技巧,通過(guò)這12個(gè)技巧可以大大減少你的js代碼量,看懂一種是入門(mén),全懂就是大神,你能知道幾個(gè)呢?需要的朋友們下面跟著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)下吧。2017-08-08JS 實(shí)現(xiàn)雙色表格實(shí)現(xiàn)代碼
通過(guò)為<tr>元素添加屬性或類(lèi)型選擇器,再通過(guò)CSS設(shè)置可以實(shí)現(xiàn)雙色表格,但如果表格很長(zhǎng),逐個(gè)元素添加可真麻煩。而且這樣的代碼維護(hù)起來(lái)不容易。所以比較好的方式是用JS實(shí)現(xiàn)。2009-11-11