解析ES6中的解构赋值(数组,对象,嵌套,默认值)
作者:WaterRec
解构赋值是一种特殊的语法,它使我们可以将数组或对象“拆包”至一系列变量中,因为有时这样更方便,接下来通过本文给大家介绍ES6中的解构赋值(数组,对象,嵌套,默认值),需要的朋友可以参考下
解构赋值
通过解构赋值,可以快速从对象或者数组中取出属性或者数值。
1.解构赋值
可以通过定位到数组或者对象的某一个位置,将值直接赋给一个或多个变量。
const arr = ['dasha', 'ersha', 'gangdan'] let [a, b, c] = arr //a='dasha' b='ersha' c='gangdan' //假如需要交换ab的值 只需要 [a, b] = [b, a]
2.解构赋值嵌套
复杂的对象或者数组也可以使用这种方法。
const arr = [1, [2,3,4], 5] let [a, [b,,d], c] = arr console.log(a) // 1 console.log(b) // 2 console.log(d) // 4
3.解构赋值的默认值
给变量先设置好默认值,当数组或者对象中无法找到匹配的值,则将默认值赋给变量。
let [a=1] = [100] // a=100 let [b=1] = [] // b=1
4.解构赋值用在对象上时候,需要用键的方式
const obj = { name:'shabi', age:12, } let{age} = obj // 为了防止age在上面被let定义过了,可以将age改名为ag let{age:ag, err="定义err默认值即使对象中没有这个属性,也可以获取到这个默认值字符串"} = obj console.log(err)// '定义err默认值即使对象中没有这个属性,也可以获取到这个默认值字符串'
5.解析一个从函数返回的数组
获取返回值进行解构赋值,更加方便
function test(){ return [1,2,3] } let [x,y] = test() console.log(x) //x = 1 console.log(y) //y = 2
6.rest写法:将剩下的所有值赋值给一个变量
这种写法只能适用于用在最后一位,无法用在开头或者中间,否则会报错。
let [a,...rest] = [1, 2, 3]; console.log(a); // 1 console.log(rest); // [2, 3]
到此这篇关于ES6中的解构赋值(数组,对象,嵌套,默认值)的文章就介绍到这了,更多相关ES6解构赋值内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!