ES6 -- 變數的解構賦值的用途
示例
- 變換變數的值
[x,y] = [y,x]
上面的程式碼交換了變數 x 和 y 的值,這樣的寫法不僅簡潔,而且易讀,語義非常清晰。
- 從函式返回多個值
函式只能返回一個值,如果要返回多個值,只能將其放在陣列或物件中返回。有了解構賦值,取出這些值就非常方便。
// 返回一個陣列
function example(){
return [1,2,3];
}
var [a,b,c] = example();
// 返回一個物件
function example(){
return {
foo:1,
bar:2
};
}
var { foo,bar } = example();
- 函式引數的定義
解構賦值可以方便地將一組引數與變數名對應起來。
// 引數是一組有次序的值
function f([x,y,z]){ ... }
f([1,2,3])
// 引數是一組無次序的值
function({ x,y,z }){ ... }
f({ z:3,y:2,x:1 })
- 提取 JSON 資料
解構賦值對提取 JSON 物件中的資料尤其有用。
var jsonData = {
id: 42,
status: "OK",
data: [ 867,5309 ]
};
let { id, status, data: number } = jsonData;
console.log(id, status, number)
// 42 , OK , [ 867,5309 ]
上面的程式碼可以快速提取 JSON 資料的值。
- 函式引數的預設值
jQuery.ajax = function(url,{
async = true,
beforeSend = function(){},
cache = true,
complate = function(){},
crossDomain = false,
global = true,
// ... more config
}){
// ... do stuff
}
指定引數的預設值,就避免了在函式體內部再寫
var foo = config.foo || "default foo";
這樣的語句。
- 遍歷
Map
結構
任何部署了
Iterator
(迭代器) 介面的物件,都可以用for ... of
迴圈遍歷。Map
結構原生支援Iterator
介面,配合變數的解構賦值,獲取鍵名和鍵值就非常方便。
var 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){
console.log(key);
}
// first
// second
// 獲取鍵值
for(let [,value] of map){
console.log(value);
}
// hello
// world
- 輸入模組的指定方法
載入模組時,往往需要指定輸入哪些方法。解構賦值使得輸入語句非常清晰。
const { SourceMapConsumer, SourceNode } = require("source-map");
出處
- 程式碼來源:《ES 6 標準入門》(第2版) -- 阮一峰 著 ---- 第3章 變數的解構賦值
相關文章
- ES6 - 變數的解構賦值解析變數賦值
- ES6之變數的解構賦值變數賦值
- 深入ES6 三 變數的解構賦值變數賦值
- ES6:變數的結構賦值變數賦值
- ES6入門之變數的解構賦值變數賦值
- JavaScript解構賦值的用途JavaScript賦值
- 變數的解構賦值變數賦值
- ES6標準入門之變數的解構賦值變數賦值
- ES6系列入門學習記錄:變數的解構賦值變數賦值
- ES6中的解構賦值賦值
- ECMAScript 6入門 - 變數的解構賦值變數賦值
- ES6學習-4 解構賦值(1)陣列的解構賦值賦值陣列
- ES6解構賦值賦值
- ES6 解構賦值賦值
- ES6之解構賦值賦值
- ES6 解構賦值+改名賦值
- ES6基礎知識——let、const關鍵字和變數的解構賦值變數賦值
- ES6學習筆記二(變數結構賦值)筆記變數賦值
- ES6學習解構賦值賦值
- 變數的賦值 指標間接賦值變數賦值指標
- ES6 - let與const,解構賦值賦值
- php之普通變數賦值、物件賦值、引用賦值的區別PHP變數賦值物件
- 【ES6基礎】解構賦值(destructuring assignment)賦值Struct
- ES6變數解構變數
- Javascript 解構賦值,將屬性/值從物件/陣列中取出,賦值給其他變數JavaScript賦值物件陣列變數
- ES6小技巧 - 使用解構賦值設定函式引數預設值賦值函式
- 基礎知識梳理~ES6 解構賦值賦值
- MySQL中變數的定義和變數的賦值使用MySql變數賦值
- ES6 變數宣告與賦值:值傳遞、淺拷貝與深拷貝詳解變數賦值
- 解構賦值賦值
- ES6學習筆記(五)【解構賦值,Iterator】筆記賦值
- JavaScript函式引數解構賦值JavaScript函式賦值
- vue 變數賦值同時改變的問題Vue變數賦值
- JS中的變數賦值深入理解JS變數賦值
- 自己對Java中if變數賦值的理解Java變數賦值
- go語言變數的宣告與賦值Go變數賦值
- 【系統學習ES6】第二節:解構賦值賦值
- JS解構賦值JS賦值