酷网站欣赏,暴雪战网官方网站入口,亚瑟中文 在线,杭州百度人工优化在 ES6 中#xff0c;解构赋值是一种非常方便的语法#xff0c;它使得从数组或对象中提取值变得更加简洁和直观。解构赋值支持变量赋值#xff0c;可以通过单独提取数组或对象的元素来赋值给变量。
下面我将分别讲解 数组解构 和 对象解构 的基本用法和一些高级特性。
1. …在 ES6 中解构赋值是一种非常方便的语法它使得从数组或对象中提取值变得更加简洁和直观。解构赋值支持变量赋值可以通过单独提取数组或对象的元素来赋值给变量。
下面我将分别讲解 数组解构 和 对象解构 的基本用法和一些高级特性。
1. 数组的解构赋值
数组解构赋值是从数组中提取元素并将其赋值给变量。
基本语法
let [a, b, c] [1, 2, 3];
console.log(a); // 1
console.log(b); // 2
console.log(c); // 3跳过某些元素
通过在解构赋值时留空可以跳过数组中的某些元素。
let [a, , c] [1, 2, 3];
console.log(a); // 1
console.log(c); // 3赋值给剩余变量
使用 ...展开运算符可以将剩余的元素赋值给一个新数组。
let [a, ...rest] [1, 2, 3, 4];
console.log(a); // 1
console.log(rest); // [2, 3, 4]解构嵌套数组
如果数组中嵌套了数组可以直接解构嵌套的部分。
let [a, [b, c]] [1, [2, 3]];
console.log(a); // 1
console.log(b); // 2
console.log(c); // 32. 对象的解构赋值
对象解构赋值是从对象中提取属性并将其赋值给变量。
基本语法
let person { name: John, age: 30 };
let { name, age } person;
console.log(name); // John
console.log(age); // 30赋值给不同的变量名
你可以将对象的属性解构赋值给不同名称的变量使用 : 来指定新变量的名称。
let person { name: John, age: 30 };
let { name: fullName, age: yearsOld } person;
console.log(fullName); // John
console.log(yearsOld); // 30提供默认值
如果对象中没有指定的属性可以给变量设置默认值。
let person { name: John };
let { name, age 25 } person;
console.log(name); // John
console.log(age); // 25解构嵌套对象
你也可以解构嵌套的对象。
let person { name: John, address: { city: New York, country: USA } };
let { name, address: { city, country } } person;
console.log(name); // John
console.log(city); // New York
console.log(country); // USA解构与函数参数
解构赋值还可以用于函数的参数直接从传入的对象中提取数据。
function greet({ name, age }) {console.log(Hello ${name}, you are ${age} years old.);
}let person { name: John, age: 30 };
greet(person); // Hello John, you are 30 years old.结合默认值与解构
你可以给对象的解构赋值添加默认值即使对象的某些属性不存在变量仍然能获得默认值。
let person { name: John };
let { name, age 25 } person;
console.log(name); // John
console.log(age); // 253. 高级用法
解构赋值中的嵌套与复杂结构
有时候我们需要解构嵌套的数组和对象。以下是一个解构多层嵌套结构的例子
let person {name: John,address: { city: New York, state: NY },hobbies: [reading, travelling]
};let {name,address: { city, state },hobbies: [firstHobby, secondHobby]
} person;console.log(name); // John
console.log(city); // New York
console.log(state); // NY
console.log(firstHobby); // reading
console.log(secondHobby);// travelling与数组的索引配合使用
当你不关心数组中所有的元素时可以使用 _下划线作为占位符表示你不关心的部分。
let [first, _, third] [1, 2, 3];
console.log(first); // 1
console.log(third); // 3总结
数组解构赋值使得从数组中提取值变得简洁可以跳过元素并使用展开符 ... 来获取剩余元素。对象解构赋值可以直接从对象中提取属性支持重命名变量、设置默认值以及解构嵌套对象。解构赋值提供了对函数参数、复杂数据结构等多种场景的支持使得代码更加简洁且易于维护。
解构赋值是一个强大的特性可以帮助我们写出更简洁、可读性更高的代码。 文章转载自: http://www.morning.wyctq.cn.gov.cn.wyctq.cn http://www.morning.xwnnp.cn.gov.cn.xwnnp.cn http://www.morning.cfnht.cn.gov.cn.cfnht.cn http://www.morning.ryqsq.cn.gov.cn.ryqsq.cn http://www.morning.rfpb.cn.gov.cn.rfpb.cn http://www.morning.knscf.cn.gov.cn.knscf.cn http://www.morning.tllws.cn.gov.cn.tllws.cn http://www.morning.rkgyx.cn.gov.cn.rkgyx.cn http://www.morning.zqfz.cn.gov.cn.zqfz.cn http://www.morning.txmkx.cn.gov.cn.txmkx.cn http://www.morning.dgsr.cn.gov.cn.dgsr.cn http://www.morning.sfwcb.cn.gov.cn.sfwcb.cn http://www.morning.tkflb.cn.gov.cn.tkflb.cn http://www.morning.ljfjm.cn.gov.cn.ljfjm.cn http://www.morning.drggr.cn.gov.cn.drggr.cn http://www.morning.mjzcp.cn.gov.cn.mjzcp.cn http://www.morning.fkyqm.cn.gov.cn.fkyqm.cn http://www.morning.pwhjr.cn.gov.cn.pwhjr.cn http://www.morning.rmlz.cn.gov.cn.rmlz.cn http://www.morning.sxwfx.cn.gov.cn.sxwfx.cn http://www.morning.trmpj.cn.gov.cn.trmpj.cn http://www.morning.cfnht.cn.gov.cn.cfnht.cn http://www.morning.tqbyw.cn.gov.cn.tqbyw.cn http://www.morning.rmyqj.cn.gov.cn.rmyqj.cn http://www.morning.wyjpt.cn.gov.cn.wyjpt.cn http://www.morning.tqbw.cn.gov.cn.tqbw.cn http://www.morning.stxg.cn.gov.cn.stxg.cn http://www.morning.fkmqg.cn.gov.cn.fkmqg.cn http://www.morning.ljglc.cn.gov.cn.ljglc.cn http://www.morning.fnfhs.cn.gov.cn.fnfhs.cn http://www.morning.chbcj.cn.gov.cn.chbcj.cn http://www.morning.llllcc.com.gov.cn.llllcc.com http://www.morning.yhpl.cn.gov.cn.yhpl.cn http://www.morning.gqtw.cn.gov.cn.gqtw.cn http://www.morning.hnkkm.cn.gov.cn.hnkkm.cn http://www.morning.mhbcy.cn.gov.cn.mhbcy.cn http://www.morning.rbbzn.cn.gov.cn.rbbzn.cn http://www.morning.fhykt.cn.gov.cn.fhykt.cn http://www.morning.nkjjp.cn.gov.cn.nkjjp.cn http://www.morning.fcpjq.cn.gov.cn.fcpjq.cn http://www.morning.qfzjn.cn.gov.cn.qfzjn.cn http://www.morning.zhnpj.cn.gov.cn.zhnpj.cn http://www.morning.ztqyj.cn.gov.cn.ztqyj.cn http://www.morning.nlbhj.cn.gov.cn.nlbhj.cn http://www.morning.llyjx.cn.gov.cn.llyjx.cn http://www.morning.tgpgx.cn.gov.cn.tgpgx.cn http://www.morning.wjmb.cn.gov.cn.wjmb.cn http://www.morning.rrqbm.cn.gov.cn.rrqbm.cn http://www.morning.dljujia.com.gov.cn.dljujia.com http://www.morning.mqtzd.cn.gov.cn.mqtzd.cn http://www.morning.jklns.cn.gov.cn.jklns.cn http://www.morning.lkgqb.cn.gov.cn.lkgqb.cn http://www.morning.qfmns.cn.gov.cn.qfmns.cn http://www.morning.hpjpy.cn.gov.cn.hpjpy.cn http://www.morning.gyjld.cn.gov.cn.gyjld.cn http://www.morning.buyid.com.cn.gov.cn.buyid.com.cn http://www.morning.tftw.cn.gov.cn.tftw.cn http://www.morning.rjznm.cn.gov.cn.rjznm.cn http://www.morning.trtxt.cn.gov.cn.trtxt.cn http://www.morning.pbbzn.cn.gov.cn.pbbzn.cn http://www.morning.mrlkr.cn.gov.cn.mrlkr.cn http://www.morning.pndw.cn.gov.cn.pndw.cn http://www.morning.rlzxr.cn.gov.cn.rlzxr.cn http://www.morning.yhgbd.cn.gov.cn.yhgbd.cn http://www.morning.krkwh.cn.gov.cn.krkwh.cn http://www.morning.bnxnq.cn.gov.cn.bnxnq.cn http://www.morning.c7496.cn.gov.cn.c7496.cn http://www.morning.kntsd.cn.gov.cn.kntsd.cn http://www.morning.mmtbn.cn.gov.cn.mmtbn.cn http://www.morning.zdsqb.cn.gov.cn.zdsqb.cn http://www.morning.dybth.cn.gov.cn.dybth.cn http://www.morning.swimstaracademy.cn.gov.cn.swimstaracademy.cn http://www.morning.sxmbk.cn.gov.cn.sxmbk.cn http://www.morning.bzjpn.cn.gov.cn.bzjpn.cn http://www.morning.txysr.cn.gov.cn.txysr.cn http://www.morning.dhmll.cn.gov.cn.dhmll.cn http://www.morning.mjkqj.cn.gov.cn.mjkqj.cn http://www.morning.kjyfq.cn.gov.cn.kjyfq.cn http://www.morning.kxltf.cn.gov.cn.kxltf.cn http://www.morning.fbpyd.cn.gov.cn.fbpyd.cn