通俗易懂TypeScript系列二:聲明和解構(gòu)(下)

法國巴農(nóng),薰衣草田【摘自微軟Bing】

解構(gòu):所謂解構(gòu)就是將聲明的一組變量于相同的解構(gòu)的數(shù)組或?qū)ο蟮脑財?shù)值 一一對應(yīng)

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

我們看看下面代碼,一起來了解數(shù)組解構(gòu)

傳統(tǒng)寫法:

let? numbers= [1,2,3];

let a = numbers [0];

let b = numbers [1];

let c = numbers [2];

console.log(a,b,c);//輸出1,2,3

解構(gòu)寫法:

let? [a,b,c] =? [1,2,3];

console.log(a,b,c);//輸出1,2,3;

是不是簡潔很多,這就是數(shù)組解構(gòu)最基本的寫法

A、當(dāng)聲明的參數(shù)多于賦值的參數(shù)時

let [a, b, c, d] = [1, 2, 3];

console.log(a, b, c, d); // 1, 2, 3, undefined

B、當(dāng)聲明的參數(shù)少于賦值的參數(shù)時

let [a, ,b] = [1,2,3];

console.log(a, b); ?// 1, 3

C、在數(shù)組解構(gòu)賦初始值

let ?[a, b, c = 4, d = 'hello'] = [1, 2, 3];

console.log(a, b, c, d); ? // 1, 2, 3, "Hello"

2、對象解構(gòu)

解構(gòu)不僅可以用于數(shù)組,還可以用于對象

let {name,age} = {name:"小文",age:"20歲"};

console.log(name,age);

注意:對象解構(gòu)和數(shù)組解構(gòu)不同的是,對象解構(gòu)的聲明變量部分必須和賦值的屬性名一一對應(yīng)才能取到對應(yīng)的值,數(shù)組解構(gòu)可以通過索引下標(biāo)取值

我們來看看對象解構(gòu)的原理?

其實(shí)對象的解構(gòu)賦值的內(nèi)部機(jī)制,是先找到對象同名屬性,然后在賦對應(yīng)的值,真正被賦值的是后者,而不是前者

一起看看代碼:

let {a:b} = {a:"aaa", b:'bbb' };

console.log(a); // a is not defined

console.log(b); // aaa

a是匹配的模式,b才是變量,真正被賦值的是b (b <=”bbb”),復(fù)制到控制臺打印試試

3、函數(shù)傳參的解構(gòu)

function add([x, y]){

return x + y;

}

add([1, 2]); // 3

4、rest運(yùn)算符和擴(kuò)展運(yùn)算符

應(yīng)用場景:主要用于不定參數(shù),所以ES6開始可以不再使用arguments對象

(1)、rest運(yùn)算符

rest 參數(shù)叫做不定(剩余)參數(shù), 用三個點(diǎn)+加數(shù)組值表示(…arr),把逗號隔開的值轉(zhuǎn)換成數(shù)組

function hello(...arr){

console.log(arr);

}

hello(1,2,3,4,5,);//輸出 [1, 2, 3, 4, 5]


注意:rest運(yùn)算符只能用在最后一個參數(shù)

看看代碼:

a.放rest運(yùn)算符放后面


b.放rest運(yùn)算符放前面


(2)、擴(kuò)展運(yùn)算符

也是用三個點(diǎn)+加數(shù)組值表示,是把數(shù)組或類數(shù)組對象轉(zhuǎn)換程一系列用逗號隔開的值,跟rest相反

let arr = [1,2,3,4,5];

console.log(...arr); //輸出1 2 3 4 5


5、rest運(yùn)算符配合解構(gòu)使用

let [a, ...rest] = [1, 2, 3, 4];

console.log(a);//1

console.log(rest);//[2, 3, 4];

以上就是解構(gòu)的相關(guān)內(nèi)容

個人學(xué)習(xí)心得,大神路過 ,不喜勿噴?? ?,如果你覺得不錯,歡迎點(diǎn)贊,訂閱,分享出去給需要的人,筆者將非常感謝

<完>

如果你是喜歡看書的朋友,不妨點(diǎn)擊【有驚喜】這是我在亞馬遜買的電子書,都非常珍貴。希望你能喜歡

作者:小處成就大事

簡介:一個喜歡分享和學(xué)習(xí)的前端開發(fā)程序猿,平時喜歡看看書,游泳,爬山,戶外騎行等,期待與志同道合的你成為朋友,一起交流、一起進(jìn)步。

初衷:閑時喜歡寫一些文章分享,記錄豐富自己??赡軟]有別人寫得好,但是我寫的每一篇都非常用心和投入。真心希望來到這里對你有所收獲,我將非常開心很欣慰。

博客小處成就大事_新浪博客

如果有志同道合的朋友不妨加微信一起交流和學(xué)習(xí),期待你的到來

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 基本用法 ES6 允許按照一定模式,從數(shù)組和對象中提取值,對變量進(jìn)行賦值,這被稱為解構(gòu)(Destructuring...
    嘉奇呦_nice閱讀 827評論 0 2
  • JavaScript之父:Brendan Eich 。 -基本語法:借鑒了C語言和Java語言。-數(shù)據(jù)結(jié)構(gòu):借鑒了...
    饑人谷_kule閱讀 668評論 0 0
  • 《ECMAScript6 入門》阮一峰 讀書筆記 let和constlet聲明的變量僅在塊級作用域內(nèi)有效,var聲...
    親愛的孟良閱讀 807評論 1 2
  • 1.數(shù)組的解構(gòu)賦值 2.對象的解構(gòu)賦值 3.字符串的解構(gòu)賦值 4.數(shù)值和布爾值的解構(gòu)賦值 5.函數(shù)參數(shù)的解構(gòu)賦值 ...
    卞卞村長L閱讀 952評論 0 0
  • 今天順利的擠上了19路公交車,看著穿著鮮亮的人們,突然想到了小時候。記得小時候很少洗澡,夏天還好,接滿一盆涼水,從...
    笨石頭閱讀 171評論 0 0

友情鏈接更多精彩內(nèi)容