ES6語法—解構(gòu)賦值的使用場景

學習新的語法新的知識后攀圈,非常有必要的一點就是要知道它的使用場景

變量的解構(gòu)賦值實用性很強存璃,使用場景很多
1.交換賦值
2.函數(shù)參數(shù)的定義
3.函數(shù)參數(shù)的默認值
4.從函數(shù)返回多個值
5.提取JSON數(shù)據(jù)
6.遍歷Map結(jié)構(gòu)
7.輸入模塊的指定方法

(1)交換變量的值

let x = 1;
let y = 2;
[x, y] = [y, x];

上面代碼交換變量x和y的值尸折,這樣的寫法不僅簡潔,而且易讀扒磁,語義非常清晰尾菇。

(2)函數(shù)參數(shù)的定義
解構(gòu)賦值可以方便地將一組參數(shù)與變量名對應(yīng)起來。

// 參數(shù)是一組有次序的值
function f([x, y, z]) { ... }
f([1, 2, 3]);

// 參數(shù)是一組無次序的值
function f({x, y, z}) { ... }
f({z: 3, y: 2, x: 1});

(3)函數(shù)參數(shù)的默認值

jQuery.ajax = function (url, {
  async = true,
  beforeSend = function () {},
  cache = true,
  complete = function () {},
  crossDomain = false,
  global = true,
  // ... more config
}) {
  // ... do stuff
};

指定參數(shù)的默認值匙握,就避免了在函數(shù)體內(nèi)部再寫var foo = config.foo || 'default foo';這樣的語句咆槽。

(4)從函數(shù)返回多個值
函數(shù)只能返回一個值,如果要返回多個值圈纺,只能將它們放在數(shù)組或?qū)ο罄锓祷厍胤蕖S辛私鈽?gòu)賦值,取出這些值就非常方便蛾娶。
// 返回一個數(shù)組

function example() {
  return [1, 2, 3];
}
let [a, b, c] = example();

// 返回一個對象

function example() {
  return {
    foo: 1,
    bar: 2
  };
}
let { foo, bar } = example();

(5)提取JSON數(shù)據(jù)
解構(gòu)賦值對提取 JSON 對象中的數(shù)據(jù)灯谣,尤其有用。

let jsonData = {
  id: 42,
  status: "OK",
  data: [867, 5309]
};

let { id, status, data: number } = jsonData;

console.log(id, status, number);
// 42, "OK", [867, 5309]

(6)遍歷Map結(jié)構(gòu)
任何部署了 Iterator 接口的對象蛔琅,都可以用for...of循環(huán)遍歷胎许。Map 結(jié)構(gòu)原生支持 Iterator 接口,配合變量的解構(gòu)賦值罗售,獲取鍵名和鍵值就非常方便辜窑。

const map = new Map();
map.set('first', 'hello');
map.set('second', 'world');

for (let [key, value] of map) {
  console.log(key + " is " + value);
}
// first is hello
// second is world

如果只想獲取鍵名,或者只想獲取鍵值莽囤,可以寫成下面這樣谬擦。

// 獲取鍵名
for (let [key] of map) {
  // ...
}

// 獲取鍵值
for (let [,value] of map) {
  // ...
}

(7)輸入模塊的指定方法
加載模塊時,往往需要指定輸入哪些方法朽缎。解構(gòu)賦值使得輸入語句非常清晰

const { SourceMapConsumer, SourceNode } = require("source-map");
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末惨远,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子话肖,更是在濱河造成了極大的恐慌北秽,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件最筒,死亡現(xiàn)場離奇詭異贺氓,居然都是意外死亡,警方通過查閱死者的電腦和手機床蜘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進店門辙培,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蔑水,“玉大人,你說我怎么就攤上這事扬蕊〔蟊穑” “怎么了?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵尾抑,是天一觀的道長歇父。 經(jīng)常有香客問我,道長再愈,這世上最難降的妖魔是什么榜苫? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮翎冲,結(jié)果婚禮上垂睬,老公的妹妹穿的比我還像新娘。我一直安慰自己府适,他們只是感情好羔飞,可當我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著檐春,像睡著了一般逻淌。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上疟暖,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天卡儒,我揣著相機與錄音,去河邊找鬼俐巴。 笑死骨望,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的欣舵。 我是一名探鬼主播擎鸠,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼缘圈!你這毒婦竟也來了劣光?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤糟把,失蹤者是張志新(化名)和其女友劉穎绢涡,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體遣疯,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡雄可,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片数苫。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡聪舒,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出虐急,到底是詐尸還是另有隱情过椎,我是刑警寧澤,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布戏仓,位于F島的核電站,受9級特大地震影響亡鼠,放射性物質(zhì)發(fā)生泄漏赏殃。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一间涵、第九天 我趴在偏房一處隱蔽的房頂上張望仁热。 院中可真熱鬧,春花似錦勾哩、人聲如沸抗蠢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽迅矛。三九已至,卻和暖如春潜叛,著一層夾襖步出監(jiān)牢的瞬間秽褒,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工威兜, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留销斟,地道東北人。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓椒舵,卻偏偏與公主長得像蚂踊,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子笔宿,可洞房花燭夜當晚...
    茶點故事閱讀 44,914評論 2 355

推薦閱讀更多精彩內(nèi)容