1.基本用法
1.数组的解构
const [a, b] = [10, 100]
注意:因为数组没key,所有解构出来的a, b可以任意取名然后使用
2.对象的结构
const obj = {
name: "Roven",
age: 30
}
const { name, age } = obj
注意:解构的name, age必须对应目标对象obj, 如果没有值,为undefined
2.默认值
1.数组的默认值
const [a = 10, b = 20, c = 30] = [100, 200]
注意:当解构项多于目标数组本身,默认值从原来的undefined -> 设置的默认值
1.对象的默认值
const obj = {
name: "Roven",
age: 30
}
const { name = 'curry', age = '20', gender = '男' } = obj
//name = 'Roven'
//age = 30
//gender = '男'
注意:与数组相同
3.字符串的解构赋值
const str = 'hello world'
const [a, b, c, d, e, f, g] = str
注意:字符串类似于数组
4.函数参数的解构赋值
(1) 参数是对象
const obj = {
a: 100,
b: 200
}
function fn({a, b}){
return a + b
}
const sum = fn(obj)
console.log(sum)
(2) 参数为数组
const arr = [100, 300]
function fn2([a, b]){
return a + b
}
const sum2 = fn2(arr)
console.log(sum2)
5.解构重命名
const obj = {
name: "cuury",
age: 30
}
const { name, age:currentAge } = obj
console.log(name, currentAge)
注意:重命名后不能使用命名前的变量名称
6. 应用场景
1. 交换变量
let x = 1
let y = 2
console.log([x, y])
console.log([x, y] = [y, x])
2. 结构函数返回值
function fn(){
return {
name: "curry",
age: 30
}
}
const { name, age } = fn()
3. 函数默认值
function fn({ name = 'curry', age = 30 }){ ... }
4. 遍历 Map 结构
const map = new Map()
map.set("name", "curry")
map.set("age", 30)
for( const [key, value] of map ){
console.log([key])
console.log([, value])
console.log([key, value])
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?