es6 变量的解构赋值,es5实现解构赋值
这篇文章带给你一些关于javascript的知识。ES6允许你按照一定的模式从数组或者对象中提取值,然后给变量赋值,这就是所谓的解构。只要等号两边的模式相同,左边的变量就会被赋予相应的值。这种写法属于“模式匹配”。统称为“解构作业”。让我们来看看吧。希望对大家有帮助。
【相关推荐:javascript视频教程,web前端】
数组的解构赋值
设[a,B,c]=[1,2,3]同时定义多个变量,A匹配1,B匹配2,C匹配3。
解构允许指定默认值,即左边的变量指定默认值,右边没有对应的值,那么会先输出默认值。
设[x,y= b]=[a]/x= a ,y= b x匹配字符A,y的默认值是字符b,如果右边没有对应的,默认输出字符b。
对象的解构赋值
解构不仅可以用于数组,也可以用于对象。对象解构和数组之间有一个重要的区别。数组的元素按顺序排列,变量的值由其位置决定;但是,对象的属性没有顺序,变量必须与属性同名才能获得正确的值。
让{
姓名,
年龄,
爱好:[一,二]
}={
姓名:“白马寺郎”,
年龄:21,
爱好:[骑马,动漫]
}比如我取age的值,改成abc的值,因为和对象中的属性名不对应,不能相应赋值,所以是未定义的。
解构赋值的运用
交换变量的值
想办法正常交换变量值。
设x=1,
y=2,
温度=0
温度=x //x=1=温度
x=y //y=2=x
y=温度//温度=1=y
console.log(x=,x)
Console.log(y=,y)使用解构赋值来交换变量。
设x=1;
设y=2;
[x,y]=[y,x];
console.log(x=,x)
Console.log(y=,y)以这种方式交换变量x和y的值。文字不仅简洁,而且易读,语义非常清晰。
从函数返回多个值
函数只能返回一个值。如果要返回多个值,只能在数组或对象中返回。有了解构赋值,就变得更方便了。
提取爱好数组中的第二个值
函数getArray() {
返回{
姓名: kongsam ,
年龄:21,
爱好:[骑行,动漫,羽毛球]
}
}
Console.log(getArray()。名称“likes”get array()。爱好[1]) //动漫使用解构赋值,得到爱好数组中的第二个值。
让{姓名,年龄,爱好}=getArray()
Console.log(name likes 爱好[1]) //anime:
遍历Map结构
For for.在循环遍历中,被遍历的值是一个数组,而解构赋值可以对数组进行“模式匹配”,这样可以快速取出键值。
为.具有解构赋值的循环遍历非常便于获得键值。
for (let [key,value] of map) {
console.log(key=,key)
console.log(value=,value)
}
函数参数的解构赋值
//让{ x=10,y=5 }={}
函数f({ x=10,y=5 }={}) {
return [x,y]
}
console.log(f({ x: 100,y:50 })//[100,50]
console . log(f({ x:3 })//[3,5]
console . log(f({ })//[10,5]
Console.log(f()) //[10,5]可以向函数的参数传入对象,并且可以为传入的对象设置默认值。会被解构成函数来使用,你也可以这么理解。
函数f(x=10,y=5) {
return [x,y]
}
console.log(f(100,50)) //[100,50]
console.log(f(3)) //[3,5]
console.log(f()) //[10,5]的写法不同也会导致不同的结果。
函数f({ x,y }={ x: 10,y: 5 }) {
return [x,y]
}
console.log(f({ x: 100,y:50 })//[100,50]
console . log(f({ x:3 })//[3,未定义]
console . log(f({ })//[未定义,未定义]
Console.log(f()) //[10,5]第三次和第四次打印将没有定义。这是因为传入的X或Y与object属性中的值不对应,匹配不成功。
【相关推荐:javascript视频教程,web前端】以上是掌握ES6解构作业原理及应用的详细内容。更多请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。