ES6--解构赋值默认值(原先的变量已经有值)

1、解构赋值允许指定默认值

<script>
let [a = true] = [];
console.log(a)// true
</script>
<script>

let [x, y = 'b'] = ['a']; // x='a', y='b'
console.log(x,'+',y)// a + b
</script>

2、数组成员严格等于 undefined,默认值生效

默认值生效


<script>
let [x, y = 'b'] = ['a', undefined]; // x='a', y='b'
console.log(x,'+',y)// a + b
</script>

默认值生效 

<script>
let [x = 1] = [undefined];//x=1
</script>

3、默认值不生效:数组成员是null,默认值就不会生效,因为null不严格等于undefined

<script>
let [x = 1] = [null];//x= null
</script>

4、如果默认值是一个表达式,那么这个表达式是惰性求值的,即只有在用到的时候,才会求值

<script>
function f() {
  console.log('aaa');
}
let [x = f()] = [1];
console.log(x)//x=1因为x能取到值,所以函数f根本不会执行
</script>
<script>
function f() {
  console.log('aaa');
}
let [x = f()] = [undefined];
console.log(x)//函数f根本执行--x未定义undefined
</script>

 5、默认值可以引用解构赋值的其他变量,但该变量必须已经声明

<script>
let [x = 1, y = x] = [];     // x=1; y=1
// let [x = 1, y = x] = [2];    // x=2; y=2
// let [x = 1, y = x] = [1, 2]; // x=1; y=2
// let [x = y, y = 1] = [];     // ReferenceError: y is not defined
</script>

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值