第一篇,es6中你常常犯错的地方,let,const,变量的解构赋值,对象解构

发布时间:2024年01月12日

一.变量
var声明的,在全局范围内都有效,是全局对象的属性,全局对象是window
let声明的,a.有块级作用域,b.不允许在相同作用域内重复声明同一个变量
运用在for循环中,避免造成全局变量。

let str = '';

for (let i = 0; i < 9; i++) {
  str = str + i;
}

console.log(str);
// Expected output: "012345678"

const声明常量,不可改变,不可重复
二、解构赋值
1.默认值,生效条件是,对象的属性,或者变量的值严格等于undefined

var [x=1] = [undefined] // x是1
var [x=1] = [null] // x是 null

var {x, y = 5} = {x:1}

2.嵌套结果对象
注意: p是模式,不是变量,因此不会赋值

  const obj = {
      p: ['hello', {y:'world'}]
    }
  var {p: [x, {y}]} = obj
  // 注意: p是模式,不是变量,因此不会赋值

嵌套对象,父属性不存在,那将会报错

// 报错
 const {foo:{bar}} = {name:'one'}

3.对象赋值解读

    const {list: msg ='some thing'} = {}

!](https://img-blog.csdnimg.cn/direct/7c629b0e555a480ca7bd260e6ff82473.png)

4.函数参数的解构也用默认值,以下2种请注意区分
第一种:为变量x,y指定默认值

    function move({x =0, y =0} = {}) {
      return [x,y]
    }
    move() // [0,0]
    move({}) // [0,0]

第二种为参数指定默认值

  function move({x, y} ={x:0, y: 0}) {
      return [x,y]
  	}
    move() // [0,0]
    move({}) // [undefined,undefined]
文章来源:https://blog.csdn.net/tangxiaobao2016/article/details/135522045
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。