摘要:特點(diǎn)是塊級(jí)作用域的特點(diǎn)得到明顯的體現(xiàn)再看一個(gè)中的循環(huán)變量泄露為全局變量很明顯成了全局變量。本人目前了解的還不夠深比如中添加一個(gè)新的詞匯暫時(shí)性死區(qū),簡稱。
(個(gè)人理解ES6就是對(duì)ES5的BUG修改和升級(jí))
廢話不多說今天要探討的是 var與let
ECMAScript 6 入門 作者:阮一峰
下面是個(gè)人總結(jié):
let不允許在相同作用域內(nèi),重復(fù)聲明同一個(gè)變量。
let 特點(diǎn)是塊級(jí)作用域
先來看一下ES5中時(shí)常出現(xiàn)的變量提升的問題!
var tmp = new Date(); function f() { console.log(tmp); if(false) { var tmp = "hello world"; } console.log(tmp); }
輸出結(jié)果為undefined,原因在于變量提升,導(dǎo)致內(nèi)層的tmp變量覆蓋了外層的tmp變量。
在ES6的語法中解決的變量提升的問題 是這么實(shí)現(xiàn)的!
function f1() { let n = 5; if (true) { let n = 10; } console.log(n); // 5 }
這里大家可以自己試驗(yàn) 將內(nèi)層 和外層的 n 分別用var let 來定義 就發(fā)現(xiàn)
let不允許在相同作用域內(nèi),重復(fù)聲明同一個(gè)變量。
lef 特點(diǎn)是塊級(jí)作用域
let 的特點(diǎn)得到明顯的體現(xiàn)!
再看一個(gè)ES5中的循環(huán)變量泄露為全局變量
var s = "hello"; for (var i = 0; i < s.length; i++) { console.log(s[i]); } console.log(i); // 5
很明顯i成了全局變量。
ES6中
for (let i = 0; i < 10; i++) { // ... } console.log(i); // ReferenceError: i is not defined
這表明,let聲明的變量只在它所在的代碼塊有效。
本人目前了解的還不夠深!
比如ES6中添加一個(gè)新的詞匯 “暫時(shí)性死區(qū)”(temporal dead zone,簡稱 TDZ)。
var tmp = 123; if (true) { tmp = "abc"; // ReferenceError let tmp; }
我可以把它理解為ES6解決不了的BUG!非要給他定義成一個(gè)詞匯么?(笑死)!
也希望大牛前來解答探討!
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/98943.html
摘要:前端日?qǐng)?bào)精選三思而后行想提高團(tuán)隊(duì)技術(shù),來試試這個(gè)套路如何開發(fā)一個(gè)插件學(xué)習(xí)筆記塊級(jí)作用域綁定譯文詳解帶來的個(gè)重大變化中文周二放送畫圖知乎專欄第期新特性譯配置譯高性能視差滾動(dòng)行代碼構(gòu)建區(qū)塊鏈知乎專欄渲染器修仙之路之拷貝對(duì)象已 2017-07-25 前端日?qǐng)?bào) 精選 SSR 三思而后行想提高團(tuán)隊(duì)技術(shù),來試試這個(gè)套路!如何開發(fā)一個(gè) Atom 插件ES6學(xué)習(xí)筆記:塊級(jí)作用域綁定【譯文】詳解VUE2...
摘要:如下示例構(gòu)造函數(shù)實(shí)例化對(duì)象新特性使用類實(shí)例化對(duì)象引入了類這一概念,可以通過關(guān)鍵字,定義類。否則報(bào)錯(cuò),這是類和構(gòu)造函數(shù)的一個(gè)主要區(qū)別。其實(shí),的類,可以看作是構(gòu)造函數(shù)的另外一種寫法。 前言 類語法是ES6中新增的一個(gè)亮點(diǎn)特性,下文簡單對(duì)類的使用進(jìn)行簡要說明(僅作為個(gè)人層面的理解) js傳統(tǒng)模式實(shí)例化對(duì)象方法——prototype 在JavaScript中,實(shí)例化一個(gè)對(duì)象的傳統(tǒng)使用方法是通過...
摘要:任何數(shù)據(jù)結(jié)構(gòu)只要部署接口,就可以完成遍歷操作即依次處理該數(shù)據(jù)結(jié)構(gòu)的成員。的遍歷某個(gè)數(shù)據(jù)結(jié)構(gòu)過程是這樣的比如對(duì)進(jìn)行遍歷創(chuàng)建一個(gè)指針對(duì)象,指向當(dāng)前數(shù)組的起始位置。 Iterator 這真是毅種循環(huán) Iterator不是array,也不是set,不是map, 它不是一個(gè)實(shí)體,而是一種訪問機(jī)制,是一個(gè)用來訪問某個(gè)對(duì)象的接口規(guī)范,為各種不同的數(shù)據(jù)結(jié)構(gòu)提供統(tǒng)一的訪問機(jī)制。任何數(shù)據(jù)結(jié)構(gòu)只要部署Ite...
閱讀 604·2023-04-26 01:39
閱讀 4725·2021-11-16 11:45
閱讀 2684·2021-09-27 13:37
閱讀 963·2021-09-01 10:50
閱讀 3705·2021-08-16 10:50
閱讀 2284·2019-08-30 15:55
閱讀 3068·2019-08-30 15:55
閱讀 2320·2019-08-30 14:07