ES6学习(二):解构赋值
2023-12-14 14:40:41
前言
解构赋值是ES6中新提出的语法,简单并且实用,数组和对象都可以使用
数组解构赋值
规则
1.其实是按照顺序一一匹配的,就像排队领取物资一样,你领到什么就是什么,没有挑的份,你排的晚了什么都没领到,那就是undifined。
2.如果给分配的是一个数组,那可以在命名时外部嵌套[],去再次解构
基础使用
//简单值
let arr1 = [1,2,3,4]
let [a,b,c,d] = arr1
console.log(a,b,c,d,'数字数组')
//复杂数组
let arr2 = [{name:'wjt'},{age:28},'coder']
let [name,age,work] = arr2
console.log(name,age,work,'复杂数组')
?嵌套数组
let [val1,[val2],[val3],val4] = ['哈哈哈',['呵呵呵'],'嘿嘿嘿']
console.log(val1,val2,val3,val4)
按序匹配
let [val1,,val3] = ['哈哈','呵呵','嘿嘿']
console.log(val1,val3)
对象解构赋值
规则
1.按照对象内的键和定义的名一一匹配,匹配不到的就是undefined
基础使用
let {name,age,work} = {name:'wjt',work:'coder',age:28}
console.log(name,age,work)
let {hehe} = {haha:'哈哈',heihei:'嘿嘿'}
console.log(hehe,'未匹配到')
重命名的写法
let {对象内同名属性名:新创建的变量名} = {属性名:属性值}
let {oldName:newName} = {oldName:'wjt'}
// console.log(oldName,'我是引用属性名') //is not defined
console.log(newName,'我是重命名的变量')
默认值
let {name='wjt',age=18} = {name:'WJT'}
console.log(name,age)
字符串结构赋值
字符串的结构赋值比较简单
let str = 'wjt'
let [val1,val2,val3,val4] = str
console.log(val1,val2,val3,val4)
函数参数结构赋值
//对象
function fn1({name,age}){
console.log(`我是${name},我今年${age}岁了`)
}
fn1({name:'wjt',age:28})
//数组
function fn2([name,age]){
console.log(`我是${name},我今年${age}岁了`)
}
fn2(['mashi',28])
应用
批量提取信息
let info = {name:'wjt',age:28,work:'coder'}
//麻烦写法
// let name = info.name
// let age = info.age
// let workName = info.work
// console.log(name,age,workName)
//解构赋值写法
let {name,age,work:workName} = info
console.log(name,age,workName)
?
虽然会有人说,这不是很简单么,但是根据实际开发的经验,使用麻烦写法的人不在少数,或许很多人压根就没有使用解构赋值这种语法的潜意识和习惯。
交换变量
let wjt = 'wjt';
let mashi = 'mashi';
[wjt, mashi] = [mashi, wjt];
console.log(wjt, 'wjt')
console.log(mashi, 'mashi')
我记得刚开学js的时候,就需要学会一个知识点,如何用交换a和b这两个变量值,当时还用的最基础的方法,c = a;a=b;b=c;如今直接用解构赋值就可以轻松做到
文章来源:https://blog.csdn.net/m0_54741495/article/details/134978628
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!