es6数组赋值

1.数组的解构赋值

//以前给变量赋值 let a=1,b=2,c=3
//在es6里 可以这样
    // let [a,b,c]=[1,2,3]
    // console.log(a,b,c)
let ary=[ 'a', 'b']
// let [a,b,c]=ary
// console.log(a,b,c)// a b undefined


let arr=[ 'aa', 'bb', 'cc', 'dd']
let [ a, b, c]= arr
console. log( a, b, c)

2.嵌套赋值

//嵌套数组,其实是给对应的变量付得值
let [ x, y,[ s],[[ f]]]=[ 1, 2,[ 3],[[ 4]]]
console. log( x, y, s, f)

3.省略赋值

let ary=[ 1, 2, 3, 4, 5, 6] //定义一个数组ary
let a= ary[ 0] //定义一个变量a,保存的是ary中的第一个值
let b= ary[ ary. length- 1] //定义一个变量b,保存的是ary中的第一个值


//es6的写法:x取到ary中的第1项,y是ary的第5项
let [ x,,,, y]= ary
console. log( x, y) //1,5

4.不定参数的赋值

//比如现在有个数组【1,2,3,4,5】 现在我想让a=1 b=[2,3,4,5]
let [ a,... b]=[ 1, 2, 3, 4, 5]
console. log( a, b) //1 ,[2,3,4,5]


//这就是不定参数赋值
let [,, x,,... y]=[ 1, 2, 3, 4, 5, 6, 7, 8, 9]
console. log( x, y) //3 ,[5,6,7,8,9]


5.默认值

let [ f0, f1]=[ 1]
console. log( f0, f1) //1 ,undefined 现在f1没值 所以是undefined,

let [ f2, f3= 2]=[ 1]
console. log( f2, f3) //1 ,2 如果后边有值 就取后边的值 ,如果没有 就取2 相当于是默认值

//es6里边的运算是严格运算的,判断一个位置是否有值, 是用的===判断,
//如果数组中成员不严格等于undefined ,默认值不会生效
let [ f= 1]=[ 2] //null
console. log( f) //2 //null

function fn() {
console. log( "haha")
}
let [ x= fn(), y= 0]=[ 1]
console. log( x, y) //1 ,0 //所以说只要变量在数组中的位置不是undefined,fn函数就不会执行


针对es6中...的用法总结:

用法1:展开运算符(spread operator),作用是和字面意思一样,就是把东西展开。可以用在arrayobject上都行,比如

let a = [1,2,3];
let b = [0, ...a, 4]; // [0,1,2,3,4]

let obj = { a: 1, b: 2 };
let obj2 = { ...obj, c: 3 }; // { a:1, b:2, c:3 }
let obj3 = { ...obj, a: 3 }; // { a:3, b:2 }

用法2:剩余操作符(rest operator),是解构的一种,意思就是把剩余的东西放到一个array里面赋值给它。一般只针对array的解构

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

// 也可以
let a = [1,2,3];
let [b, ...[c,d,e]] = a;
b; // 1
c; // 2
d; // 3
e; // undefined

// 也可以
function test(a, ...rest){
  console.log(a); // 1
  console.log(rest); // [2,3]
}

test(1,2,3)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宋哈哈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值