let {foo:fzz} = {foo:"aa"}//fzz = aa
先取出foo
然后给fzz
- 解构赋值的默认:
let [foo = true] = [];let {foo = true} = {}
- 数组嵌套赋值:
a.let [f,{s}] = [1,{s:"aa"}]//f = 1,s = "aa"
b.let {p,p:[{f}]} = {p:[{f:"aa"}]};//p = [{f:"aa"}],f=aa p是模式匹配
- 直接解构赋值和…的区别:
a.let [a,...res] = [1]//a=1,res = []
b.let [a,b] = [1]//a = 1,b = undefined
c.let {a,...res} = {a:"aa"} // a = "aa",res = {}
d.let {a,b} = {a:"aa"} // a = "aa",b = undefined
- 解构赋值的默认值如果是表达式,那么该函数只有在用到的时候才执行
a.let {a,b=function(){return "bb"}()} = {a:"aa"}//a=aa,b=bb
- 解构赋值的默认值如果是变量,那么被引用的变量必须在前面
a.let {a,b=a} = {a:"aa"}//a = aa,b=aa
- 数组本质是特殊的对象,因此可以对数组进行对象属性的解构:
a.let {0:first,1:second} = [1,2]//first = 1;second = 2
- 字符串的解构赋值: 字符串被被转成了类似数组的东西
a.let [first,second] = "hello"//first = h,second = e
b.let {0:first,1:second,length:len} = "hello"//len = 5
- 交换变量的值:
a.let x = 1;let y = 2;[x,y] = [y,x]
ES6解构赋值
最新推荐文章于 2025-08-06 16:42:26 发布