ES6中l(wèi)et、const的區(qū)別及變量的解構(gòu)賦值操作方法實例分析
本文實例講述了ES6中l(wèi)et、const的區(qū)別及變量的解構(gòu)賦值操作方法。分享給大家供大家參考,具體如下:
聲明:本文內(nèi)容依照阮一峰老師ECMAScript 6 入門一書所總結(jié)。
let和const
相同點
- 都存在塊級作用域
- 都不存在變量聲明提升
- 都會造成“暫時性死區(qū)”
- 在一個作用域下不可重復(fù)聲明
不同點
- const一旦聲明必須立即賦值
- const聲明的變量指向的內(nèi)存地址不得改動。
變量解構(gòu)賦值
數(shù)組的解構(gòu)賦值
解構(gòu)成功
let [a, b, c] = [1, 2, 3];
解構(gòu)不成功
let [foo] = [];
不完全解構(gòu)
let [x, y] = [1, 2, 3];
默認(rèn)值
let [foo = true] = [];
解構(gòu)條件:只要某種數(shù)據(jù)結(jié)構(gòu)具有 Iterator 接口,都可以采用數(shù)組形式的解構(gòu)賦值。
對象的解構(gòu)賦值
與數(shù)組的區(qū)別:對象的解構(gòu)與數(shù)組有一個重要的不同。數(shù)組的元素是按次序排列的,變量的取值由它的位置決定;而對象的屬性沒有次序,變量必須與屬性同名,才能取到正確的值。
應(yīng)用:可以很方便地將現(xiàn)有對象的方法,賦值到某個變量。
let { log, sin, cos } = Math;
字符串的解構(gòu)賦值
原理:字符串被轉(zhuǎn)換成了一個類似數(shù)組的對象。
const [a, b, c, d, e] = 'hello';
類似數(shù)組的對象都有一個length屬性,因此還可以對這個屬性解構(gòu)賦值。
let {length : len} = 'hello'; len // 5
數(shù)值和布爾值的解構(gòu)賦值
let {toString: s} = 123; s === Number.prototype.toString // true
let {toString: s} = true; s === Boolean.prototype.toString // true
函數(shù)參數(shù)的解構(gòu)賦值
[[1, 2], [3, 4]].map(([a, b]) => a + b); // [ 3, 7 ]
更多關(guān)于JavaScript相關(guān)內(nèi)容可查看本站專題:《javascript面向?qū)ο笕腴T教程》、《JavaScript錯誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運算用法總結(jié)》
希望本文所述對大家JavaScript程序設(shè)計有所幫助。
相關(guān)文章
通過js簡單實現(xiàn)將一個文本內(nèi)容轉(zhuǎn)譯成加密文本
將文本內(nèi)容轉(zhuǎn)譯成加密文本,在某些情況下還是比較實用的,下面通過js簡單實現(xiàn)下,感興趣的朋友不要錯過2013-10-10JavaScript中forEach和map方法的使用與區(qū)別
眾所周知map和forEach是數(shù)組的操作方法,下面這篇文章主要給大家介紹了關(guān)于JavaScript中forEach和map方法的使用與區(qū)別,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02自定義函數(shù)實現(xiàn)IE7與IE8不兼容js中trim函數(shù)的問題
這篇文章主要介紹了自定義函數(shù)實現(xiàn)IE7與IE8不兼容js中trim函數(shù)的方法,涉及trim函數(shù)的重寫與正則匹配的技巧,需要的朋友可以參考下2015-02-02