首页 > 其他 > 详细

ES6 解构

时间:2019-06-13 11:39:36      阅读:179      评论:0      收藏:0      [点我收藏+]

解构:按照一定模式,从数组和对象中提取值,对变量进行赋值

let[a,b,c]=[1,2,3];

只要等号两边的模式相同,左边的变量就会被赋值予对应的值。例:let[a,[[b],c]]=[1,[[2],3]]

默认值:ES6内部使用严格相等运算符(===),判断一个位置是否有值,所有,只有当一个数组成员严格等于undefined,默认值才会生效,如果默认值是一个表达式,那么这个表达式

是惰性求值的(只有在用到的时候,才会求值)

let[x=1]=[undefined]  //x=1

function f(){

     console.log(“aaa”);

}

let [x=f()]=[1];    //x =1

对象的解构赋值:

let {foo,bar}={foo:“aaa”,bar:“bbb”}

变量必须与属性同名才能取到正确的值

let {baz}= {foo:“aaa”,bar:“bbb”}

baz   //undefined

字符串的解构赋值:

const [a,b,c,d,e]=“hello”;

a  //h

b  //e

c  //l

d  //l

e  //o

数值和布尔值的解构赋值:

解构赋值时,如果等号右边是数值和布尔值,则会先转为对象

let {toString:s}=123;

s===Number.prototype.toString   //true

let {toString:s} = true;

s===Boolen.prototype.toString    //true

函数参数的解构赋值

function  add([ x,y ]){

  return  x+y;

}

add ([1,2]);    // 3

函数add的参数表面上是一个数组,但在传入参数的那一刻,数组参数就被解构成变量x和y

 

ES6 解构

原文:https://www.cnblogs.com/qrf1997/p/11015093.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!