日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

暂时性死区TDZ理解与总结

發布時間:2023/12/19 综合教程 52 生活家
生活随笔 收集整理的這篇文章主要介紹了 暂时性死区TDZ理解与总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  為什么會出現暫時性死區?

  先來看看 ES6 標準中對 let/const 聲明中的解釋 第13章,有如下一段文字:The variables are createdwhentheir containing Lexical Environmentisinstantiated but maynotbe accessedinany wayuntilthevariable’s LexicalBindingisevaluated.

  當然這段話我看完也很懵,查閱了一些帖子,翻譯成人話就是:

  當程序的控制流程在新的作用域(module functionblock 作用域)進行實例化時,在此作用域中用let/const聲明的變量會先在作用域中被創建出來,但因此時還未進行詞法綁定,所以是不能被訪問的,如果訪問就會拋出錯誤。因此,在這運行流程進入作用域創建變量,到變量可以被訪問之間的這一段時間,就稱之為暫時死區。

  如果你還是記不住,那么只需理解下面這句話即可:

  ES6規定,let/const 命令會使區塊形成封閉的作用域。若在聲明之前使用變量,就會報錯。總之,在代碼塊內,使用 let 命令聲明變量之前,該變量都是不可用的。這在語法上,稱為 “暫時性死區”( temporal dead zone,簡稱 TDZ)。

if (true) {
  // TDZ開始
  tmp = 'abc'; // ReferenceError
  console.log(tmp); // ReferenceError

  let tmp; // TDZ結束
  console.log(tmp); // undefined

  tmp = 123;
  console.log(tmp); // 123
}

  上面代碼中,在let命令聲明變量tmp之前,都屬于變量tmp的“死區”。“暫時性死區”也意味著typeof不再是一個百分之百安全的操作。

typeof x; // ReferenceError
let x;

  上面代碼中,變量x使用let命令聲明,所以在聲明之前,都屬于x的“死區”,只要用到該變量就會報錯。因此,typeof運行時就會拋出一個ReferenceError。大家應該養成良好的編程習慣,變量一定要在聲明之后使用,否則就報錯。

  有些“死區”比較隱蔽,不太容易發現。

function bar(x = y, y = 2) {
  return [x, y];
}

bar(); // 報錯

  上面代碼中,調用bar函數之所以報錯,是因為參數x默認值等于另一個參數y,而此時y還沒有聲明,屬于”死區“。如果y的默認值是x,就不會報錯,因為此時x已經聲明了。

  ES6規定暫時性死區和letconst語句不出現變量提升,主要是為了減少運行時錯誤,防止在變量聲明前就使用這個變量,從而導致意料之外的行為。這樣的錯誤在ES5是很常見的,現在有了這種規定,避免此類錯誤就很容易了。

  總之,暫時性死區的本質就是,只要一進入當前作用域,所要使用的變量就已經存在了,但是不可獲取,只有等到聲明變量的那一行代碼出現,才可以獲取和使用該變量。

  我們再來看一個問題

function bar() {
    var x = y
    y = 2
    return [x, y];
}

bar()   // y未定義
function bar() {
    var x = 2
    y = 2
    return [x, y];
}
bar()
window.y  // 2

  至于上面的y未定義的錯,也是一個死區。千萬不要以為下面隱式聲明的一個全局變量就以為y會變量提升,不是這樣的。只有var聲明的才會提升,隱式的全局變量是不會提升的,這樣就會存在死區。

總結

以上是生活随笔為你收集整理的暂时性死区TDZ理解与总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 香蕉成人在线视频 | 国产精品夜夜夜爽张柏芝 | 国产成人久久 | 中文字幕一区二区三区免费视频 | 一区二区三区四区在线 | 成人首页| 黄色91视频| 国产在线视频网 | 在线观看视频99 | 黑人添美女bbb添高潮了 | 79日本xxxxxxxxx18 婷婷亚洲一区 | 美女无遮挡免费网站 | 999色综合 | 精品视频99| 污视频免费看 | 99久久精品免费看国产 | 亚洲风情亚aⅴ在线发布 | 婷婷五月精品中文字幕 | 精品久久久无码中文字幕 | 射射av | 一本大道久久a久久综合婷婷 | 在线观看亚洲一区 | 亚洲视屏在线观看 | 国产一卡二卡在线 | 色av资源 | 嫩草一区二区 | 久久久久久亚洲av无码专区 | 免费av免费看 | 国产成人 综合 亚洲 | 女人又爽又黄免费女仆 | 伊人久久九| 国产成人av网站 | 爱看av| 久草视频在线观 | 久久性 | 动漫艳母在线观看 | 3d动漫精品啪啪一区二区竹菊 | 成人一级网站 | 欧美夜夜操| 不卡黄色| 日本黄色片网址 | 欧美乱妇日本无乱码特黄大片 | 午夜爽爽影院 | 毛片在线免费播放 | 夜夜高潮夜夜爽 | 俺也去婷婷 | 国产精品天美传媒 | 一级片黑人 | 美国av片| 最近中文字幕在线中文视频 | 好男人在线视频www 亚洲福利国产 | 中文字幕久久一区 | 久久成人免费电影 | 午夜剧场黄色 | 久久中文字幕电影 | 久久作爱 | 欧美一区二区三区四区五区 | avxx | 精品黑人一区二区三区国语馆 | 四虎影视成人 | 3o一40一50一6o女人毛片 | 国产伦精品一区二区三区视频女 | 调教小屁屁白丝丨vk | 中文字幕人妻伦伦 | av久久久 | 日韩一区二区a片免费观看 伊人网综合在线 | 亚洲成人久久精品 | 日本女人毛茸茸 | 99碰碰 | 日韩精品久久久久久免费 | 午夜黄色 | 双性娇喘浑圆奶水h男男漫画 | 亚洲精品第五页 | 色偷偷一区二区三区 | 亚洲午夜毛片 | 亚洲hhh | 长篇乱肉合集乱500小说日本 | 国产精品免费在线播放 | 日韩123区 | 日韩美女黄色片 | 国产黑人| 人人人射 | 亚洲网站在线免费观看 | 国产三区在线成人av | 最新国产视频 | 婷婷一区二区三区 | 免费三级在线 | 三上悠亚激情av一区二区三区 | 91精品久久久久久久久久入口 | 成人免费在线网站 | 国产欧美综合一区 | 天天鲁一鲁摸一摸爽一爽 | 精品国产免费一区二区三区 | 亚洲最大在线视频 | 欧美亚洲国产成人 | 极品尤物一区二区三区 | 精品少妇爆乳无码av无码专区 | 加勒比波多野结衣 | 色婷婷在线影院 |