整理ES6:解构赋值
原文链接:https://github.com/taoliujun/blog/issues/17
工作中经常会使用变量的解构赋值,随便举几个例子。
数组解构
1 | const fruits = ["apple", "pear", "orange", "banana", "peach"]; |
1 | node 1.ts |
在执行结果中可以看到,fruit1
是apple,其后是一个空位,所以fruit3
是orange,otherFruits
前面有扩展运算符,所以它读取了剩下的所有索引值。
对象解构
对象解构里记录一个概念,就是模式与变量,见下面一个嵌套结构的例子:
1 | const user = { |
1 | base: { truename: '张三', sex: '女' } |
在如上的对象解构中,第一个base
是变量,第二个base
是模式,它的值是user
对象中的base
属性,truename
是变量,card
也是变量。
字符串、数组、布尔值解构
因为解构的规则是将变量转为对象(数组也是对象),字符串、数字、布尔都可以转成对象。
所以字符串可以像数组那样解构。
1 | const word = "abcdefg"; |
1 | { x: 'b', y: 'd' } |
小技巧
数组也是对象,所以读取指定索引的值,可以这样写:
1 | const fruits = ["apple", "pear", "orange", "banana", "peach"]; |
1 | banana |