ES6学习--let,const以及解构赋值

let 和const 命令

let 用法

  • 块级作用域
  • 不存在变量提升,变量先声明后使用,这以为这typeof 不再是一个绝对安全的操作
  • TDZ(temporal dead zone)
  • 不允许重复声明

块级作用域

  • 外层代码不受内层代码的影响
  • 在严格模式下(‘use strict’)下,函数只能在顶层作用域和函数内声明,不然报错

const命令

  • const 用来声明常量,以为着一旦声明就要初始化
  • 冻结对象object.freeze(obj)方法
  • ES6有6种声明变量的方法,var,function,let,const,class,import

跨模块

export const A=1

全局对象

  • 浏览器中window,Node中global
  • var,function声明的全局变量是全局变量的属性,而let,const则不是

变量解构赋值

  • 本质上是“模式匹配” var [a, b, c] = [1, 2, 3],解构不成功,赋undefined
  • 允许使用默认值
  • 可以将现有对象的方法赋值到变量 let{sin, cos, log} = Math

用途

  • 交换变量的值[x, y] = [y, x]
  • 从函数返回多个值 return 对象或数组再进行赋值
  • 函数参数的默认值
  • 遍历Map解构
for (let [key, value] of map){

}
  • 指定模块输入
    const {model1, model2} = require(‘source’)

你可能感兴趣的:(前端)