概述
阮一峰的《ES6入门》学习记录
数组的解构赋值
解构赋值:es6允许按照一定模式从数组和对象中提取值,然后对变量进行赋值
解构分为完全解构和不完全解构
事实上,只要某种数据结构具有Iterator接口,都可以采用数组形式的解构赋值
解构赋值允许指定默认值
如果一个数组成员是null,默认值就不会生效
let [x=1]=[null] //x为null
es6内部使用===判断一个值是否有值,如果一个数组成员不严格等于undefined,默认值不会生效
对象的解构赋值
数组是按次序排列的,变量的取值由它的位置决定;
对象的属性没有次序,变量必须和属性同名才能取到值 对象的解构赋值的内部机制是先找到同名属性,然后再赋值给对应的变量。真正被赋值的是后者,而不是前者。
字符串的解构赋值
字符串也可以解构赋值,因为此时字符串被转换为一个类似数组的对象 const [a,b,c,d,e]=‘hello’ // a-h,b-e,c-l。。。。
类似数组的对象都有一个length属性,还可以对这个属性进行赋值 let {length:len} = ‘hello’ //len:5
数值和布尔值的解构赋值
解构赋值时,如果右边是数值和布尔值,则会先转为对象
解构赋值的原则是,只要等号右边不是对象或数组,就先将其转为对象。由于null和undefined无法转为对象,所以对它们进行解构赋值时都会先报错。
函数参数的解构赋值
函数的参数也可以解构赋值
圆括号问题
建议,只要有可能,就不要在模式中放置圆括号
不能使用圆括号的三种情况
- 变量声明语句 let [(a)] = [1]
- 函数参数 function fun([(z)]){return z}
- 赋值语句的模式 ({p:a}) = {p:42}
可以使用圆括号的只有一种情况,赋值语句的非模式部分可以使用圆括号 [(b)]=[3]
用途
- 交换变量的值 [x,y]=[y,x]
- 从函数返回多个值
function exzample(){
return
[1,2,3]
}
let [a,b,c] = exzample
- 函数参数的定义
- 提取json数据
- 函数参数的默认值
- 遍历Map解构
1. 获取对象的键名 for(let [key] of map)
2. 获取键值 for(let [,value] of map) - 输入模块的指定方法
最后
以上就是落后水杯为你收集整理的ES6_P2 解构赋值的全部内容,希望文章能够帮你解决ES6_P2 解构赋值所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复