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

JS中l(wèi)et的基本用法舉例

 更新時間:2023年01月05日 15:31:51   作者:chenmo2001  
ES6新增了let命令,用來聲明變量,它的用法類似于var,但是所聲明的變量,只在let命令所在的代碼塊內(nèi)有效,下面這篇文章主要給大家介紹了關(guān)于JS中l(wèi)et的基本用法,需要的朋友可以參考下

JS中l(wèi)et用法

基本用法

Let命令用來聲明變量。它的用法類似于var,但是所聲明的變量。只在let命令所在的代碼塊內(nèi)有效。

上面代碼塊中,分別用let和var聲明了兩個變量。然后在代碼塊之外調(diào)用這兩個變量,結(jié)果let聲明的變量報錯,var聲明的變量返回了正確的值。這表明,let聲明的變量只在它所在的代碼塊有效。

還有:

-var聲明的變量,可以預(yù)解析提前調(diào)用的結(jié)果是undefined,let定義的變量不能預(yù)解析,提前調(diào)用的結(jié)果是報錯。

-var定義的變量,變量名可以重復(fù),效果是重復(fù)賦值,let定義的變量不能重復(fù),否則執(zhí)行報錯。

-塊級作用域{},一個{}可以看作一個作用域,if語句和for語句里面的{}也屬于塊作用域

很適合for循環(huán)的計數(shù)器

例如:

上面代碼中,變量i是var命令聲明的,在全局范圍內(nèi)都有效,所以全局只有一個變量i。每一次循環(huán),變量i都會發(fā)生改變,二循環(huán)內(nèi)被賦給數(shù)組a的函數(shù)內(nèi)部的console.log(i),里面的i指向的就是全局的i,也就是說,所有數(shù)組a的成員里面的i,指向的都是同一個i,導(dǎo)致運行時輸出的是最后一輪的i的值,也就是10.

如果使用let,聲明的變量僅在塊級作用域內(nèi)有效,最后輸出的是6,

上面代碼中,變量i是let聲明的,當前的i只在本輪循環(huán)有效,所以每一次循環(huán)的i其實都是一個新的變量,所以最后輸出的是6。JavaScript引擎內(nèi)部會記住上一輪循環(huán)的值,初始化本輪的變量i時,就在上一輪循環(huán)的基礎(chǔ)上進行計算。

  • 暫時性死區(qū)TDZ

-TDZ又叫暫時性死區(qū),意思是變量在作用域內(nèi)已經(jīng)存在,必須在let/const聲明后面使用。

只要塊級作用域內(nèi)存在let命令,它所聲明的變量就“綁定”(binding)這個區(qū)域,不再受外部的影響。

上面代碼中,存在全局變量a,但是塊級作用域內(nèi)let又聲明了一個局部變量a,導(dǎo)致后者綁定這個塊級作用域,所以在let聲明變量前,對a賦值會報錯。

ES6明確規(guī)定,如果區(qū)塊中存在let和const命令,這個區(qū)塊對這些命令聲明的變量,從一開始就形成了封閉作用域。凡是在聲明之前就 使用這些變量,就會報錯。

例如:

在聲明變量之前都屬于該變量的“死區(qū)”.

-TDZ本質(zhì):只要一進入當前作用域,所要使用的變量就已經(jīng)存在,但是不可獲取,只有等到聲明變量的那一行代碼出現(xiàn),才可以獲取和使用該變量。

TDZ也意味著typeof不再是一個百分百安全的操作。

如果

typeof a;

Let a;

變量a,使用let命令聲明之前,都屬于a的“死區(qū)”,只要用到該變量就會報錯。因此,typeof運行時就會拋出一個ReferenceError.

作為比較,如果一個變量根本沒有被聲明,使用typeof反而不會報錯。

ES6規(guī)定暫時性死區(qū)和let,const語句不出現(xiàn)變量提升,主要是為了減小運行時的錯誤,防止變量在聲明前就使用這個變量。

補充:var和let的區(qū)別

區(qū)別:

1.使用var聲明的變量,其作用域為該語句所在的函數(shù)內(nèi),且存在變量提升現(xiàn)象;

2.使用let聲明的變量,其作用域為該語句所在的代碼塊內(nèi),不存在變量提升;

3.let不允許在相同作用域內(nèi),重復(fù)聲明同一個變量。

總結(jié)

到此這篇關(guān)于JS中l(wèi)et的基本用法舉例的文章就介紹到這了,更多相關(guān)JS let用法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 如何在TypeScript中使用函數(shù)

    如何在TypeScript中使用函數(shù)

    這篇文章主要為大家介紹了如何在TypeScript中使用函數(shù)實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • js改變文章字體大小的實例代碼

    js改變文章字體大小的實例代碼

    這篇文章主要介紹了js改變文章字體大小的實例代碼,有需要的朋友可以參考一下
    2013-11-11
  • iconfont的三種使用方式詳解

    iconfont的三種使用方式詳解

    這篇文章主要介紹了iconfont的三種使用方式,需要的朋友可以參考下
    2018-08-08
  • JS實現(xiàn)動態(tài)添加外部js、css到head標簽的方法

    JS實現(xiàn)動態(tài)添加外部js、css到head標簽的方法

    這篇文章主要介紹了JS實現(xiàn)動態(tài)添加外部js、css到head標簽的方法,涉及javascript針對頁面元素屬性動態(tài)操作相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2019-06-06
  • js獲取當前日期前七天的方法

    js獲取當前日期前七天的方法

    這篇文章主要介紹了js獲取當前日期前七天的方法,涉及javascript中for語句及日期操作的技巧,需要的朋友可以參考下
    2015-02-02
  • javascript 精確獲取樣式屬性(下)

    javascript 精確獲取樣式屬性(下)

    繼續(xù)上一部分,我們要看一下顏色。火狐好像不管三七二十一都會轉(zhuǎn)變?yōu)閞gb格式,不過我們通常比較習(xí)慣的是hex格式。這就用到以下兩函數(shù)。
    2010-01-01
  • js浮點數(shù)精確計算(加、減、乘、除)

    js浮點數(shù)精確計算(加、減、乘、除)

    本篇文章主要介紹了js浮點數(shù)精確計算(加、減、乘、除) 需要的朋友可以過來參考下,希望對大家有所幫助
    2013-12-12
  • js實現(xiàn)電梯導(dǎo)航效果的示例代碼

    js實現(xiàn)電梯導(dǎo)航效果的示例代碼

    這篇文章主要介紹了JavaScript實現(xiàn)電梯導(dǎo)航效果的相關(guān)知識,文中通過示例代碼介紹的很詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2023-12-12
  • TypeScript遍歷Array的方法(for,forEach,every)

    TypeScript遍歷Array的方法(for,forEach,every)

    本文主要介紹了TypeScript遍歷Array的方法(for,forEach,every),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • JavaScript實現(xiàn)表單驗證案例

    JavaScript實現(xiàn)表單驗證案例

    這篇文章主要為大家詳細介紹了JavaScript實現(xiàn)表單驗證案例,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08

最新評論