1.数组解构
let [a,b,c,d] = ['aa','bb',77,88]
嵌套数组解构
let [a,b,[c,d],e] = ['aa','bb',[33,44],55]
空缺变量
let [a,b,,e] = ['aa','bb',[33,44],55]
多余变量
let [a,b,,e,f] = ['aa','bb',[33,44],55]
默认值
let [a,b,,e,f='hello'] = ['aa','bb',[33,44],55]
2.对象解构
let obj = new Object() obj.uid = 111 obj.uname = '张三' obj.arr = ['aa','bb'] let {uid:id,uname:name} = obj // 顺序改变无影响 alert(name) //直接输出 值
小括号:
let uid,uname,arr,a,b,c //定义键名 ({uid,uname,arr:[a,b,c='ccc']} = obj) // c 为默认值 必须有小括号,否则 {} 就会被解读为语句块
可嵌套(例如:arr)
可有默认值 (例如:c)
3.字符串解构
let [a,b,c,d] = '倚天屠龙' console.log(a,b,c,d)
4.函数解构
function login () { let obj = new Object obj.uid = 111 obj.uname = '张三' // 调用 analysis 方法, 传入 obj analysis(obj) } function analysis ({uid,uname}) { alert(uid); alert(uname); } analysis(obj)
// 以下也正确
let obj = {uid:121,uname:'张三'} function analysis ({uname}) { alert(uname) }
参数中数组、字符串、默认值、缺位均支持
Symbol 是 ES6 新增的一种值类型数据,表示一种绝不重复的值
let s1 = Symbol(33) let s2 = Symbol(33) alert(s1 == s2) // false
.