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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ES6 学习笔记(一)let,const和解构赋值

發布時間:2025/3/8 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ES6 学习笔记(一)let,const和解构赋值 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

let和const

let和const是es6新增的兩個變量聲明關鍵字,與var的不同點在于:

(1)let和const都是塊級作用域,在{}內有效,這點在for循環中非常有用,只在循環體內有效。var為函數作用域。

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

(3)不可重復聲明。一旦用var,let或者const聲明過的變量,再次用let或者const聲明時會報錯,函數的參數名如果用let或者const在函數體內聲明同名的參數時,也會報錯。

const特殊要點:

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

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

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

解構賦值

解構是按照一定的模式,從數組和對象中提取值,對變量進行賦值,解構表達式的左側是一般[]或者{}。當解構表達式的左側是[]時,右側也必須是對應的具有可遍歷屬性的對象,因此可以是[],map或者string;當解構表達式的左側為{}時,javascript解析器會先將右側的值轉換為對象,然后從轉換的對象獲取對應的屬性值。總之,解構一個很重要的原則就是“模式匹配”,根據左側是[]或者{},對右側進行轉換,如果轉換后,兩側模式匹配,則進行解構賦值,否則報錯。

同時,解構時允許設置默認值,但這里的執行順序是:先解構,如果解構得到的值為非undefined,則變量值=解構的值,默認賦值表達式不執行;只有當解構得到的值嚴格等于undefined時,才會執行默認賦值表達式,否則默認賦值表達式是不執行的。

1.數組解構

數組的解構是按照變量的順序進行賦值的,因此變量的值與數組的順序息息相關,不同的順序,解構得到的值也不同。

2.對象解構

對象解構與數組解構不同,對象解構與元素的順序無關,對象解構的主要依據是對象的屬性,對象的屬性沒有次序,變量必須與屬性同名,才能取到正確的值。

3.函數參數解構

函數參數解構其實是數組解構或者對象解構的一種應用,在es6中可以為函數參數指定默認值,這點和解構一起使用,對于參數賦值非常實用。函數參數的解構同樣要求模式匹配,函數定義時的參數的數據類型和調用時傳入的參數類型保持一致。

另外:對于已經聲明的變量進行解構賦值時,要非常小心。下面的示例中,首先用let對變量進行了聲明,由于let和const聲明的變量不能重復聲明,在通過解構表達式賦值時,javascript解析器會將行首的{}解析為代碼塊,報語法錯誤。因此在行首加(),將其強制轉化為表達式執行。

4.字符串的解構賦值

字符串也可以進行解構賦值,因為字符串可以轉化為一個具有類似數組的對象。

5.數字和布爾值的解構賦值

解構賦值時,如果等號右邊是數值和布爾值,則會先轉為對象。解構賦值的規則是,只要等號右邊的值不是對象,就先將其轉為對象。由于undefined和null無法轉為對象,所以對它們進行解構賦值,都會報錯。

參考文獻:http://es6.ruanyifeng.com/#do...

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

總結

以上是生活随笔為你收集整理的ES6 学习笔记(一)let,const和解构赋值的全部內容,希望文章能夠幫你解決所遇到的問題。

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