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’)