跳到主要內容

ES6學習筆記01 -- 暫時性死區 ( temporal dead zone )

參考文檔:   



       


       


注:文中代碼僅作示意,複製運行時需要適當調整

  
ES6 規定,如果代碼區塊中存在 let  const 命令聲明的變量,這個區塊對這些變量從一開始就形成了封閉作用域,直到聲明語句完成,這些變量才能被訪問(獲取或設置),否則會報錯ReferenceError。這在語法上稱為"暫時性死區"(英temporal dead zone,簡 TDZ),即代碼塊開始到變量聲明語句完成之間的區域。
  通過 var 聲明的變量擁有變量提升、沒有暫時性死區,作用於函數作用域:



    • 當進入變量的作用域(包圍它的函數),立即為它創建(綁定)存儲空間,立即被初始化並被賦值為 undefined   

    • 當執行到變量的聲明語句時,如果變量定義了值則會被賦值



    (function fn() {  //函數作用域開始
console.log(temp) //undefined
//聲明
var temp
console.log(temp)
//undefined
//賦值
temp = 123
console.log(temp)
//123
})()
//在函數作用域外訪問
console.log(temp) //ReferenceError: temp is not defined

 


  通過 let 聲明的變量沒有變量提升、擁有暫時性死區,作用於塊級作用域:





    • 當進入變量的作用域(包圍它的語法塊),立即為它創建(綁定)存儲空間,不會立即初始化,也不會被賦值

    • 訪問(獲取或設置)該變量會拋出異常 ReferenceError

    • 當執行到變量的聲明語句時,如果變量定義了值則會被賦值,如果變量沒有定義值,則被賦值為undefined



        {  //函數作用域開始,TDZ開始
console.log(temp) //ReferenceError: temp is not defined
//聲明
let temp
console.log(temp)
//ReferenceError: Cannot access 'temp' before initialization
//賦值
temp = 345 //TDZ結束
console.log(temp) //345
//塊級作用域結束
}
//在塊級作用域外訪問
console.log(temp) //ReferenceError: temp is not defined

 


  通過 const 聲明的常量,需要在定義的時候就賦值,並且之後不能改變,暫時性死區與 let 類似。


        {   //作用域開始,TDZ開始
console.log(temp) //ReferenceError: temp is not defined
//聲明並賦值
const temp = 789 //TDZ結束
console.log(temp) //789
//給常量賦值
temp = 987 //TypeError: Assignment to constant variable
//作用域結束
}
//在作用域外訪問
console.log(temp) //ReferenceError: temp is not defined

 

  
一句話總結:在塊級作用域中, let  const 聲明的變量、常量在聲明語句執行完成之前不能訪問(包括聲明語句本身)
  另外,容易因為 暫時性死區 而出錯的細節代碼在此不展開舉例,參考文檔中有詳情舉例。  
  附:第一次寫學習筆記,寫隨筆花費的時間比學習相關內容的時間還要長,感覺有點本末倒置,不過以後回頭看應該會覺得有所值得吧!  

  


  


 

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

USB CONNECTOR掌控什麼技術要點? 帶您認識其相關發展及效能



※評比前十大台北網頁設計台北網站設計公司知名案例作品心得分享



※智慧手機時代的來臨,RWD網頁設計已成為網頁設計推薦首選



※評比南投搬家公司費用收費行情懶人包大公開



Orignal From: ES6學習筆記01 -- 暫時性死區 ( temporal dead zone )

留言

這個網誌中的熱門文章

掃地機器人可以隨身帶上飛機嗎?我想要拿去送給國外的朋友

掃地機器人如果要隨身戴上飛機需要滿足兩個條件: 一個是掃地機器人連同你的隨身行李,整體的體積和重量要符合上機條件,這個具體每家航空公司都不同,可以諮詢,簡單的說就是隨身行李不要超寬超重。 還有一個就是由於掃地機器人內置了鋰電池,所以內置電池的容量要符合相關規定,每個掃地機器人電池容量都不同,具體自行查詢。 根據民航的相關安全要求,凡帶有鋰電池的電子設備均不可以托運,但符合重量要求,尺寸要求以及電量要求的鋰電池及其設備是可以帶上飛機的。 《鋰電池航空運輸規範》中內含鋰離子電池的設備電池額定能量不應超過100Wh的規定,符合國標GB31241-2014,並通過UN38.3航空運輸認證等國際安全標準,所以可以帶上飛機。但是不能托運,只能隨身攜帶。 掃地機器人     掃地機器人     掃地機器人吸塵器 http://www.greenh3y.com/?p=400 Orignal From: 掃地機器人可以隨身帶上飛機嗎?我想要拿去送給國外的朋友

不滿國際規範斷財路 非洲多國擬退野生動保公約

摘錄自2019年09月01日中央通訊社非洲報導 非洲南部多國揚言退出「瀕臨絕種野生動植物國際貿易公約」,因為公約多數成員拒絕放寬象牙與犀牛角交易,並且幾乎全面禁止將野生捕獲的大象送到動物園。 這個公約嚴格規範全球野生動物交易,包括限制象牙與犀牛角交易。 本週在日內瓦召開修訂「瀕臨絕種野生動植物國際貿易公約」(CITES)的會議期間,由於區域集團非南開發共同體(SADC)的多項提案遭否決,這個集團與公約的關係惡化。 全球大象數量最多的區域波札那、納米比亞與辛巴威要求販售取自自然死亡、充公與汰除的大象象牙,這項提議被居多數的101票否決。 40多年前制訂的CITES規範約3萬6000種動植物交易,並設計有助於遏止非法交易和制裁違規國家的機制。 不過有16個成員國的非南開發共同體部分會員批評CITES對非洲國家的問題視若無睹。 坦尚尼亞環境部長西蒙巴徹恩(George Simbachawene)於日內瓦召開的會議中表示:「結果無法採取進步、公平、包容與基於科學的的保育策略。」 他說:「該是認真重新考慮我們加入CITES是否有任何實質益處的時候了。」 本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理 【搬家相關資訊指南】 台中搬家 , 彰化搬家 , 南投搬家 前需注意的眉眉角角,別等搬了再說! 避免吃悶虧無故遭抬價! 台中搬家公司 免費估價,有契約讓您安心有保障! 評比 彰化搬家公司費用 , 南投搬家公司費用 收費行情懶人包大公開 彰化搬家費用 , 南投搬家費用 ,距離,噸數怎麼算?達人教你簡易估價知識! Orignal From: 不滿國際規範斷財路 非洲多國擬退野生動保公約

春河劇團《叫我林彩香》 9/16新竹縣政府文化局登場

春河劇團《叫我林彩香》舞台劇訂於9月16日下午在新竹縣政府文化局演藝廳演出。(圖/新竹縣政府提供) 記者蔡孟尚/新竹報導 春河劇團《叫我林彩香》舞台劇訂於9月16日下午在新竹縣政府文化局演藝廳登場,導演也是劇團團長郎祖筠表示,《叫我林彩香!》是公視劇《我的婆婆怎麼那麼可愛》的前傳,劇情回到婆婆年輕時那個經濟起飛的年代,透過母女之間的相處,刻畫台灣女性在社會轉變過程中的角色與地位,「林彩香」是個代名詞,每個自我意識覺醒的女生,都是可敬、可愛的林彩香。 《叫我林彩香》 演員有高玉珊、呂曼茵、鍾瑶、陳漢典、楊小黎、吳怡霈,劇情以以女性視角剖析傳統台灣家庭、社會,除了可以看到當時代人們對於女性角色的刻板印象外,也可以一窺台灣當時的時代樣貌,例如大家族裡的婆婆是如何咄咄逼人、母親一個女人如何隻身照養一大票小孩,而作為一個女人到底又該如何面對整個社會?年輕時期的彩香嚮往外面世界的自由,從女兒成為了母親,又從母親變成了婆婆,彩香的重心似乎又從外界,慢慢的被拉回家庭中,《叫我林彩香!》劇名的由來,是林彩香對著整個世界的一聲吶喊,不管現在是什麼身分,她最希望的便是可以讓自己被所有給認可。 請問 台中電動車 哪裡在賣比較便宜可以到台中景泰電動車門市去看看總店:臺中市潭子區潭秀里雅潭路一段102-1號。 電動車補助 推薦評價好的 iphone維修 中心擁有專業的維修技術團隊,同時聘請資深iphone手機維修專家,現場說明手機問題,快速修理,沒修好不收錢住家的頂樓裝 太陽光電 聽說可發揮隔熱功效一線推薦東陽能源擁有核心技術、產品研發、系統規劃設置、專業團隊的太陽能發電廠商。 網頁設計 一頭霧水該從何著手呢? 回頭車 貨運收費標準宇安交通關係企業,自成立迄今,即秉持著「以誠待人」、「以實處事」的企業信念 台中搬家公司 教你幾個打包小技巧,輕鬆整理裝箱!還在煩惱搬家費用要多少哪?台中大展搬家線上試算搬家費用,從此不再擔心「物品怎麼計費」、「多少車才能裝完」 台中搬家 公司費用怎麼算?擁有20年純熟搬遷經驗,提供免費估價且流程透明更是5星評價的搬家公司好山好水 露營車 漫遊體驗露營車x公路旅行的十一個出遊特色。走到哪、玩到哪,彈性的出遊方案,行程跟出發地也可客製 Google地圖已可更新顯示 潭子電動車 充電站設置地點!!廣告預算用在刀口上, 台北網頁設計 公司幫您達到更多曝光...