我是靠谱客的博主 落后水杯,最近开发中收集的这篇文章主要介绍ES6_P2 解构赋值,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

阮一峰的《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无法转为对象,所以对它们进行解构赋值时都会先报错。


函数参数的解构赋值

函数的参数也可以解构赋值

圆括号问题

建议,只要有可能,就不要在模式中放置圆括号
不能使用圆括号的三种情况

  1. 变量声明语句 let [(a)] = [1]
  2. 函数参数 function fun([(z)]){return z}
  3. 赋值语句的模式 ({p:a}) = {p:42}

可以使用圆括号的只有一种情况,赋值语句的非模式部分可以使用圆括号 [(b)]=[3]


用途

  1. 交换变量的值 [x,y]=[y,x]
  2. 从函数返回多个值
 function exzample(){
return
[1,2,3]
}
let [a,b,c] = exzample
  1. 函数参数的定义
  2. 提取json数据
  3. 函数参数的默认值
  4. 遍历Map解构
    1. 获取对象的键名 for(let [key] of map)
    2. 获取键值 for(let [,value] of map)
  5. 输入模块的指定方法

最后

以上就是落后水杯为你收集整理的ES6_P2 解构赋值的全部内容,希望文章能够帮你解决ES6_P2 解构赋值所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部