引言
解构赋值是 ES6 中引入的语法糖,可以使我们从数组或者对象中快速提取出需要的变量。但是在 ES11 中,解构赋值有了更多的用法,可以更加灵活地使用它。本文将深入探讨 ES11 中解构赋值的进阶用法,并提供一些示例代码。
数组解构
省略符号(...)
这是 ES6 之前就有的特性,可以将数组在解构时剩余的元素赋值给一个变量。在 ES11 中,我们可以使用省略符号结合解构赋值来去除数组的前几项或后几项,非常方便。
示例代码:
const [first, second, ...rest] = [1, 2, 3, 4, 5] console.log(first) // 1 console.log(second) // 2 console.log(rest) // [3, 4, 5] const [...init, last] = [1, 2, 3, 4, 5] console.log(init) // [1, 2, 3, 4] console.log(last) // 5
默认值
解构赋值的默认值在 ES6 中已经有了,但是在 ES11 中,我们可以将默认值设为一个函数,这样每次解构时都会调用该函数,而不是单纯地返回一个固定的值。
示例代码:
function getArray() { console.log('get array') return [1, 2, 3] } const [a = getArray()] = [] console.log(a) // 1
对象解构
省略符号(...)
和数组解构类似,我们也可以使用省略符号来将对象中剩余的键值对赋值给一个变量。
示例代码:
const {first, second, ...rest} = {first: 1, second: 2, third: 3, fourth: 4} console.log(first) // 1 console.log(second) // 2 console.log(rest) // {third: 3, fourth: 4}
别名
在 ES11 中,我们可以使用别名来指定对象中某个键的变量名。这个特性在引用第三方库或者接口时非常有用,可以避免和自己的变量重名。
示例代码:
const {name: username} = {name: 'Alice', age: 20} console.log(username) // Alice
默认值
和数组解构一样,对象解构也可以设定默认值。但是要注意的是,如果对象中有该键但对应的值为 undefined,则依然会使用默认值。
示例代码:
const {name = 'Bob', age = 20} = {name: undefined} console.log(name) // Bob console.log(age) // 20
数组和对象混合解构
在 ES11 中,我们可以将数组和对象进行混合解构,这样可以快速提取出需要的值。
示例代码:
const {name, address: [province,,district]} = {name: 'Alice', address: ['Beijing', 'Chaoyang', 'Wangjing']} console.log(name) // Alice console.log(province) // Beijing console.log(district) // Wangjing
总结
在 ES11 中,解构赋值有了更多的用法,可以更加灵活地使用它。通过本文的介绍,我们可以发现这些新特性非常实用,可以帮助我们更快地编写出优美、简洁的代码。我相信随着对 ES11 的深入了解,你一定可以在自己的项目中灵活使用这些新特性,提高代码的可读性和编写效率。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/645f1d2a968c7c53b0135219