多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
### 数组的解构赋值 #### 数组解构赋值的基本用法 ES6允许按照一定模式从数组和对象中提取值,然后对变量进行赋值,这被称为解构 ```js let [a, b, c] = [1, 2, 3] ``` 如果解构不成功,则变量的值为 `undefined` 只要某种数据结构具有 `Iterator` 接口,都可以采用数组形式的解构赋值 #### 默认值 解构赋值允许指定默认值 ```js let [foo = true] = [] foo // true ``` ### 对象的解构赋值 解构不仅适用于数组,也可以用于对象 ```js let { foo, bar } = { foo: 'aaa', bar: 'bbb' } foo // 'aaa' bar // 'bbb' ``` 对象的解构与数组有一个重要的不同,数组的元素是按次序排列的,变量的取值由它的位置决定,而对象没有次序,变量必须与属性同名才能取到正确的值。 ### 字符串的解构赋值 字符串也可以解构赋值,此时字符串被转换成一个类似数组的对象 ```js const [a, b, c, d, e] = 'hello' a // 'h' b // 'e' c // 'l' d // 'l' e // 'o' ``` ### 数值和布尔值的解构赋值 解构赋值时,数值和布尔值都会转换为对象,如果不能转换,则报错。 ### 函数参数的解构赋值 ```js function add ([x, y]) { return x + y } add([1, 2]) // 3 ``` ### 解构赋值的作用 #### 交换变量的值 ```js [x, y] = [y, x] ``` #### 从函数返回多个值 ```js function example () { return [1, 2, 3] } ``` #### 函数参数的定义 ```js function f ([x, y, z]) { // ... } ``` #### 提取JSON数据 ```js let jsonData = { id: 42, status: 'OK', data: [867, 5000] } let { id, status, data: number } = jsonData // 42, OK, [867, 5000] ```