ES6知識點整理之?dāng)?shù)組解構(gòu)和字符串解構(gòu)的應(yīng)用示例
本文實例講述了ES6知識點整理之?dāng)?shù)組解構(gòu)和字符串解構(gòu)的應(yīng)用。分享給大家供大家參考,具體如下:
ES6 允許按照一定模式,從數(shù)組和對象中提取值,對變量進(jìn)行賦值,這被稱為解構(gòu)(Destructuring), 而數(shù)組的解構(gòu)賦值是從數(shù)組中提取值,按照對應(yīng)位置,對變量賦值。
ES6之前的賦值操作
var arr = [1,2,3]; var a = arr[0]; var b = arr[1]; var c = arr[2]; console.log(a,b,c); // 1 2 3
對一維數(shù)組的解構(gòu)賦值的應(yīng)用
var arr = [1,2,3]; var [a,b,c] = arr; console.log(a,b,c); // 1 2 3
對多維數(shù)組的解構(gòu)賦值的應(yīng)用
let arr = [22, [5,8], 11]; let [a,[b,c],d] = arr; console.log(a,b,c,d); // 22 5 8 11
解構(gòu)賦值用于變量的交換舉例
let x = 11; let y = 22; [y,x] = [x,y]; console.log(x,y); // 22 11
解構(gòu)賦值中不完全的解析示例
let arr = [22, [5,8], 11]; let [a,[b],c] = arr; console.log(a, b, c); // 22 5 11 let [m,[,n],o] = arr; console.log(m, n, o); // 22 8 11
不能被數(shù)組解析的值
let [m] = ""; console.log(m); // undefined; let [x,y] = NaN; // NaN is not iterable. 不能被數(shù)組解析的值:NaN, undefined, null, {}
實現(xiàn)了iterator接口的類型都可以被解析賦值
let [x,y] = new Set([22, 33]); console.log(x,y); // 22 33
自己創(chuàng)造一個實現(xiàn)iterator接口的對象進(jìn)行解構(gòu)賦值
class Group{ constructor() { } next() { return {value:'Joh', done: false}; } [Symbol.iterator]() { return this; } } let group = new Group(); let [x,y,z,m,n] = group; console.log(x,y,z,m,n); // Joh Joh Joh Joh Joh 備注:這里如果類中的next的done為true,那么全為undefined
… 運算符 轉(zhuǎn)換成數(shù)組的解構(gòu)舉例
var [x,w, ...y] = [1,2,3,4,5,6]; console.log(x,w, y); // 1 2 [3,4,5,6]
解構(gòu)數(shù)組的默認(rèn)值
如果數(shù)組中的不是undefined,都會被成功解構(gòu), 不會被默認(rèn)值替代
let [x=15, y] = [undefined, 12]; console.log(x,y); // 15 12 let [m=12, n] = [null, 10]; console.log(m, n); // null 10
字符串解構(gòu)的處理
var [a,b,c] = 'hello'; console.log(a,b,c); // h e l
感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運行工具http://tools.jb51.net/code/HtmlJsRun測試上述代碼運行結(jié)果。
更多關(guān)于JavaScript相關(guān)內(nèi)容可查看本站專題:《javascript面向?qū)ο笕腴T教程》、《JavaScript查找算法技巧總結(jié)》、《JavaScript錯誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運算用法總結(jié)》
希望本文所述對大家JavaScript程序設(shè)計有所幫助。
相關(guān)文章
Bootstrap實現(xiàn)漸變頂部固定自適應(yīng)導(dǎo)航欄
這篇文章給大家介紹了Bootstrap實現(xiàn)漸變頂部固定自適應(yīng)導(dǎo)航欄,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-01-01javascript 使用for循環(huán)時該注意的問題-附問題總結(jié)
所謂for循環(huán)就是重復(fù)的執(zhí)行一段代碼,for循環(huán)也是希望在創(chuàng)建循環(huán)時常會用到的工具,這篇內(nèi)容主要給大家介紹javascript 使用for循環(huán)時該注意的問題-附問題總結(jié),需要的朋友可以參考下2015-08-08實例分析Array.from(arr)與[...arr]到底有何不同
這篇文章通過實例主要給大家分析介紹了關(guān)于Array.from(arr)與[...arr]到底有何不同的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用js具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04typescript使用 ?. ?? ??= 運算符的方法步驟
本文主要介紹了typescript使用 ?. ?? ??= 運算符的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-01-01JS查找字符串中出現(xiàn)最多的字符及個數(shù)統(tǒng)計
最近在項目中遇到這樣的需求:求字符串'nininihaoa'中出現(xiàn)次數(shù)最多字符。怎么實現(xiàn)呢?下面小編給大家分享具體實現(xiàn)代碼,需要的朋友參考下吧2017-02-02