1,let var const
var 全局作用域,先使用后声明,undefine
let 局部作用域,或块级作用域。未声明先使用,报错
const声明一个只读的常量。一旦声明,常量的值就不能改变。只在声明所在的块级作用域内有效。
const实际上保证的,并不是变量的值不得改动,而是变量指向的那个内存地址所保存的数据不得改动,const只能保证这个指针是固定的(将一个对象声明为常量必须非常小心)
函数可以在块级作用域声明,考虑到环境导致的行为差异太大,应该避免在块级作用域内声明函数。
ES6 的块级作用域必须有大括号,如果没有大括号,JavaScript 引擎就认为不存在块级作用域。
2,变量的解构赋值
解构赋值的规则是,只要等号右边的值不是对象或数组,就先将其转为对象
网友评论