欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

TypeScript中l(wèi)et和var的區(qū)別介紹

 更新時(shí)間:2022年07月04日 14:21:54   作者:楚楚99  
這篇文章主要介紹了TypeScript?let與var的區(qū)別,主要從作用域等這幾個(gè)方面做詳細(xì)介紹,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

1、作用域不同

用var聲明的變量,只有函數(shù)作用域和全局作用域,沒(méi)有塊級(jí)作用域。而let可以實(shí)現(xiàn)塊級(jí)作用域,只能在代碼塊{}內(nèi)有效,在{}之外不能訪問(wèn),如下代碼所示:

{
let a = 0;
var b = 1;
}
console.log(a) // ReferenceError: a is not defined
console.log(b) // 1

2、let沒(méi)有變量提升

在代碼塊內(nèi),使用let命令聲明變量之前,該變量都是不可用的。這在語(yǔ)法上,稱(chēng)為:暫時(shí)性死區(qū),英文為:temporal dead zone,簡(jiǎn)稱(chēng) TDZ。

//報(bào)錯(cuò)
console.log(a)
let a=10

3、let變量不能重復(fù)聲明

使用var,多次聲明同一個(gè)變量,不會(huì)報(bào)錯(cuò),只會(huì)得到一個(gè)變量。

var a=1;
var a=2;

上述例子中,所有的a的聲明實(shí)際上都引用了一個(gè)相同的a。在多人開(kāi)發(fā)一個(gè)項(xiàng)目時(shí),容易出現(xiàn)問(wèn)題。比如都定義了一個(gè)變量a,但各自用途不同,后面定義的a會(huì)把前面定義的覆蓋掉。

而let就相對(duì)嚴(yán)格,無(wú)法多次聲明同一個(gè)變量,一個(gè)變量只能聲明一次,并且無(wú)法在 let 語(yǔ)句前去訪問(wèn)該變量

let a=1;
let a=2; //錯(cuò)誤

4、for循環(huán)中的let與var

for (var i = 0; i < 3; i++) {
setTimeout(function (){console.log("i:" + i);});
}

上述代碼打印出來(lái)i都是3,這個(gè)結(jié)果令人感覺(jué)奇怪。其實(shí)并不奇怪,原因如下所示:

(1)var是全局變量,并且可以允許重復(fù)定義,所以在for (var i = 0; i < 3; i++)語(yǔ)句中,i重復(fù)定義了3次,最終的值以最后一次定義為準(zhǔn)。

(2)javascript是單線程,setTimeout()會(huì)等f(wàn)or執(zhí)行完之后才開(kāi)始計(jì)時(shí),此時(shí)i的值為3,最終打印出3

for (let j = 0; j < 3; j++) {
setTimeout(function (){console.log("j:" + j);});
}

上述代碼打印出來(lái)i是0、1、2,原因分析如下:

(1)變量j是用let聲明的,當(dāng)前的j只在本輪循環(huán)中有效,每次循環(huán)的j其實(shí)都是一個(gè)新的變量。

(2)在for循環(huán)中,不僅循環(huán)體{}會(huì)生成塊級(jí)作用域,循環(huán)條件()也會(huì)生成塊級(jí)作用域,循環(huán)條件()的塊級(jí)作用域是循環(huán)體{}塊級(jí)作用域的父級(jí)作用域,所以let可以跨越()和{}作用域。

參考:TypeScript let與var的區(qū)別

到此這篇關(guān)于TypeScript let與var的區(qū)別的文章就介紹到這了,更多相關(guān)TypeScript let與var區(qū)別內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • javascript實(shí)現(xiàn)好看的可復(fù)用彈窗插件

    javascript實(shí)現(xiàn)好看的可復(fù)用彈窗插件

    這篇文章主要為大家詳細(xì)介紹了javascript實(shí)現(xiàn)好看的可復(fù)用彈窗插件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • JavaScript防抖與節(jié)流詳解

    JavaScript防抖與節(jié)流詳解

    這篇文章主要介紹了JS中的防抖與節(jié)流及作用詳解,本文通過(guò)文字說(shuō)明加示例代碼的形式給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-10-10
  • JS實(shí)現(xiàn)瀏覽器狀態(tài)欄文字閃爍效果的方法

    JS實(shí)現(xiàn)瀏覽器狀態(tài)欄文字閃爍效果的方法

    這篇文章主要介紹了JS實(shí)現(xiàn)瀏覽器狀態(tài)欄文字閃爍效果的方法,通過(guò)時(shí)間函數(shù)定時(shí)觸發(fā)遞歸調(diào)用實(shí)現(xiàn)狀態(tài)欄文字閃爍效果,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-10-10
  • 用js的for循環(huán)獲取radio選中的值

    用js的for循環(huán)獲取radio選中的值

    獲取radio選中值的方法有很多,在本文為大家介紹的是使用for循環(huán)來(lái)實(shí)現(xiàn),具體的實(shí)現(xiàn)如下,感興趣的朋友可以參考下
    2013-10-10
  • JS中的new Date()參數(shù)示例詳解

    JS中的new Date()參數(shù)示例詳解

    js中,new Date([params]),參數(shù)傳遞有五種方式,本文給大家講解的非常詳細(xì),對(duì)new Date()參數(shù)相關(guān)知識(shí)感興趣的朋友跟隨小編一起看看吧
    2023-11-11
  • JavaScript數(shù)據(jù)結(jié)構(gòu)鏈表知識(shí)詳解

    JavaScript數(shù)據(jù)結(jié)構(gòu)鏈表知識(shí)詳解

    存儲(chǔ)有序的元素集合,但不同于數(shù)組,鏈表中的元素在內(nèi)存中不是連續(xù)放置的。每個(gè)元素由一個(gè)存儲(chǔ)元素本身的節(jié)點(diǎn)和一個(gè)指向下一個(gè)元素的引用(也稱(chēng)指針或鏈接)組成。下面通過(guò)本文給大家詳細(xì)介紹下,需要的朋友參考下
    2016-11-11
  • Javascript? Constructor構(gòu)造器模式與Module模塊模式

    Javascript? Constructor構(gòu)造器模式與Module模塊模式

    這篇文章主要介紹了Javascript? Constructor構(gòu)造器模式與Module模塊模式,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-08-08
  • 微信小程序(六):列表上拉加載下拉刷新示例

    微信小程序(六):列表上拉加載下拉刷新示例

    本篇文章主要介紹了微信小程序(六):列表上拉加載下拉刷新示例,非常具有實(shí)用價(jià)值,需要的朋友可以參考下。
    2017-01-01
  • JS修改iframe頁(yè)面背景顏色的方法

    JS修改iframe頁(yè)面背景顏色的方法

    這篇文章主要介紹了JS修改iframe頁(yè)面背景顏色的方法,涉及javascript操作iframe頁(yè)面樣式的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-04-04
  • 網(wǎng)站導(dǎo)致瀏覽器崩潰的原因總結(jié)(多款瀏覽器) 推薦

    網(wǎng)站導(dǎo)致瀏覽器崩潰的原因總結(jié)(多款瀏覽器) 推薦

    對(duì)于訪客,如果登錄您網(wǎng)站,瀏覽器就立刻崩潰,我想這對(duì)誰(shuí)都是無(wú)法容忍的,對(duì)此總結(jié)了網(wǎng)站導(dǎo)致瀏覽器崩潰的原因
    2010-04-04

最新評(píng)論