成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

ES6 學(xué)習(xí)筆記(一)let,const和解構(gòu)賦值

iOS122 / 1666人閱讀

摘要:另外對(duì)于已經(jīng)聲明的變量進(jìn)行解構(gòu)賦值時(shí),要非常小心。因此在行首加,將其強(qiáng)制轉(zhuǎn)化為表達(dá)式執(zhí)行。由于和無法轉(zhuǎn)為對(duì)象,所以對(duì)它們進(jìn)行解構(gòu)賦值,都會(huì)報(bào)錯(cuò)。

let和const

let和const是es6新增的兩個(gè)變量聲明關(guān)鍵字,與var的不同點(diǎn)在于:

(1)let和const都是塊級(jí)作用域,在{}內(nèi)有效,這點(diǎn)在for循環(huán)中非常有用,只在循環(huán)體內(nèi)有效。var為函數(shù)作用域。

(2)使用let和const聲明的變量,不存在變量提升,必須先聲明再使用。使用var聲明的變量可以先使用再定義。

(3)不可重復(fù)聲明。一旦用var,let或者const聲明過的變量,再次用let或者const聲明時(shí)會(huì)報(bào)錯(cuò),函數(shù)的參數(shù)名如果用let或者const在函數(shù)體內(nèi)聲明同名的參數(shù)時(shí),也會(huì)報(bào)錯(cuò)。

const特殊要點(diǎn):

(1)const顧名思義常量,但這個(gè)常量與高級(jí)語言的常量有所不同,這里的常量指的是在定義就確定其值,并且這個(gè)值只讀,不可以修改;高級(jí)語言的常量更狹隘一點(diǎn);

(2)使用const聲明的變量,一旦聲明需要立即初始化,只聲明的變量無法用const,const a; 編譯會(huì)報(bào)錯(cuò);并且一旦初始化,就不能改變。

(3)const用于定義一個(gè)復(fù)合型對(duì)象或者數(shù)組時(shí),只是對(duì)對(duì)象或者數(shù)組本身不可賦值,但依然可以為對(duì)象添加屬性或者為數(shù)組push元素。

解構(gòu)賦值

解構(gòu)是按照一定的模式,從數(shù)組和對(duì)象中提取值,對(duì)變量進(jìn)行賦值,解構(gòu)表達(dá)式的左側(cè)是一般[]或者{}。當(dāng)解構(gòu)表達(dá)式的左側(cè)是[]時(shí),右側(cè)也必須是對(duì)應(yīng)的具有可遍歷屬性的對(duì)象,因此可以是[],map或者string;當(dāng)解構(gòu)表達(dá)式的左側(cè)為{}時(shí),javascript解析器會(huì)先將右側(cè)的值轉(zhuǎn)換為對(duì)象,然后從轉(zhuǎn)換的對(duì)象獲取對(duì)應(yīng)的屬性值。總之,解構(gòu)一個(gè)很重要的原則就是“模式匹配”,根據(jù)左側(cè)是[]或者{},對(duì)右側(cè)進(jìn)行轉(zhuǎn)換,如果轉(zhuǎn)換后,兩側(cè)模式匹配,則進(jìn)行解構(gòu)賦值,否則報(bào)錯(cuò)。

同時(shí),解構(gòu)時(shí)允許設(shè)置默認(rèn)值,但這里的執(zhí)行順序是:先解構(gòu),如果解構(gòu)得到的值為非undefined,則變量值=解構(gòu)的值,默認(rèn)賦值表達(dá)式不執(zhí)行;只有當(dāng)解構(gòu)得到的值嚴(yán)格等于undefined時(shí),才會(huì)執(zhí)行默認(rèn)賦值表達(dá)式,否則默認(rèn)賦值表達(dá)式是不執(zhí)行的。

1.數(shù)組解構(gòu)

數(shù)組的解構(gòu)是按照變量的順序進(jìn)行賦值的,因此變量的值與數(shù)組的順序息息相關(guān),不同的順序,解構(gòu)得到的值也不同。

2.對(duì)象解構(gòu)

對(duì)象解構(gòu)與數(shù)組解構(gòu)不同,對(duì)象解構(gòu)與元素的順序無關(guān),對(duì)象解構(gòu)的主要依據(jù)是對(duì)象的屬性,對(duì)象的屬性沒有次序,變量必須與屬性同名,才能取到正確的值。

3.函數(shù)參數(shù)解構(gòu)

函數(shù)參數(shù)解構(gòu)其實(shí)是數(shù)組解構(gòu)或者對(duì)象解構(gòu)的一種應(yīng)用,在es6中可以為函數(shù)參數(shù)指定默認(rèn)值,這點(diǎn)和解構(gòu)一起使用,對(duì)于參數(shù)賦值非常實(shí)用。函數(shù)參數(shù)的解構(gòu)同樣要求模式匹配,函數(shù)定義時(shí)的參數(shù)的數(shù)據(jù)類型和調(diào)用時(shí)傳入的參數(shù)類型保持一致。

另外:對(duì)于已經(jīng)聲明的變量進(jìn)行解構(gòu)賦值時(shí),要非常小心。下面的示例中,首先用let對(duì)變量進(jìn)行了聲明,由于let和const聲明的變量不能重復(fù)聲明,在通過解構(gòu)表達(dá)式賦值時(shí),javascript解析器會(huì)將行首的{}解析為代碼塊,報(bào)語法錯(cuò)誤。因此在行首加(),將其強(qiáng)制轉(zhuǎn)化為表達(dá)式執(zhí)行。

4.字符串的解構(gòu)賦值

字符串也可以進(jìn)行解構(gòu)賦值,因?yàn)樽址梢赞D(zhuǎn)化為一個(gè)具有類似數(shù)組的對(duì)象。

5.數(shù)字和布爾值的解構(gòu)賦值

解構(gòu)賦值時(shí),如果等號(hào)右邊是數(shù)值和布爾值,則會(huì)先轉(zhuǎn)為對(duì)象。解構(gòu)賦值的規(guī)則是,只要等號(hào)右邊的值不是對(duì)象,就先將其轉(zhuǎn)為對(duì)象。由于undefined和null無法轉(zhuǎn)為對(duì)象,所以對(duì)它們進(jìn)行解構(gòu)賦值,都會(huì)報(bào)錯(cuò)。

參考文獻(xiàn):http://es6.ruanyifeng.com/#do...

     http://es6.ruanyifeng.com/#do...

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/102119.html

相關(guān)文章

  • es6 學(xué)習(xí)筆記

    摘要:塊級(jí)作用域只有全局作用域和函數(shù)作用域,沒有塊級(jí)作用域,這帶來了很多不合理的場(chǎng)景。如聲明變量的方法只有兩種聲明變量的方法命令一共有六種命令變量的解構(gòu)賦值允許按照一定的模式,從數(shù)組和對(duì)象中提取,按照位置的對(duì)應(yīng)關(guān)系對(duì)變量賦值,這被稱為解構(gòu)。 塊級(jí)作用域 es5只有全局作用域和函數(shù)作用域,沒有塊級(jí)作用域,這帶來了很多不合理的場(chǎng)景。 第一種場(chǎng)景:內(nèi)層變量可能會(huì)覆蓋外層變量 var test = ...

    李昌杰 評(píng)論0 收藏0
  • ES6學(xué)習(xí)筆記

    摘要:學(xué)習(xí)筆記在學(xué)習(xí)的過程中做的一些記錄,用于未來的快速回憶。數(shù)組成員為時(shí),默認(rèn)值仍會(huì)生效因?yàn)樵趦?nèi)部使用嚴(yán)格相等運(yùn)算符,判斷一個(gè)位置是否有值,所以當(dāng)一個(gè)數(shù)組成員嚴(yán)格等于默認(rèn)值才會(huì)生效。 ES6學(xué)習(xí)筆記 在學(xué)習(xí)ES6的過程中做的一些記錄,用于未來的快速回憶。 let&const 作用域的概念 ES6新增塊級(jí)作用域的概念(一個(gè)大括號(hào)括起來的部分就是一個(gè)塊作用域) let與const用于在塊級(jí)作...

    mengbo 評(píng)論0 收藏0
  • 珠峰培訓(xùn)ES6學(xué)習(xí)筆記1

    摘要:消除字符串頭部空格消除尾部空格從頭部補(bǔ)全字符串從尾部補(bǔ)全字符串 let和const var關(guān)鍵字定義變量的特點(diǎn): 可以重復(fù)定義 不能定義常量 不支持塊級(jí)作用域 let的特點(diǎn) 不可以重復(fù)定義 變量不能提升,在變量定義之前,不能使用 在大括號(hào)當(dāng)中定義的變量(塊級(jí)作用域中),在作用域外無法訪問 解決一些ES5當(dāng)中需要閉包實(shí)現(xiàn)的功能,比如:每隔1秒循環(huán)輸出一個(gè)當(dāng)前的值 const的特點(diǎn)...

    番茄西紅柿 評(píng)論0 收藏0
  • ES6學(xué)習(xí)筆記1--letconst命令、解構(gòu)賦值Symbol

    摘要:和命令命令在聲明所在的塊級(jí)作用域內(nèi)有效。解構(gòu)賦值從數(shù)組和對(duì)象中提取值,對(duì)變量進(jìn)行賦值,這被稱為解構(gòu)。數(shù)值和布爾值的解構(gòu)解構(gòu)賦值時(shí),如果等號(hào)右邊是數(shù)值和布爾值,則會(huì)先轉(zhuǎn)為對(duì)象。默認(rèn)值解構(gòu)賦值允許指定默認(rèn)值。 let和const命令 let命令 在聲明所在的塊級(jí)作用域內(nèi)有效。 只要塊級(jí)作用域內(nèi)存在let命令,它所聲明的變量就綁定(binding)這個(gè)區(qū)域,不再受外部的影響。 在同一個(gè)作用...

    liaosilzu2007 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<