变量

58 阅读1分钟

声明操作符的作用域

var 声明的变量都会成为包含它的函数的局部变量,当函数执行完毕后,变量会被销毁

let const 声明的变量会成为包含它的代码块的局部变量。

声明提升

使用var声明变量,即将该变量提升到包含它的函数的作用域顶部,先使用再声明不会报错,但返回undefined,多次使用var声明同一个变量会先合并为一次声明,在提升到包含它的函数的作用域顶部

而let const 声明变量,不会将变量提升到包含它的代码块顶部,先使用再声明会报错,而且仅能声明一次,多次声明报错

如果先使用var声明a变量,再使用let或者const去声明a会报错,因为这两个声明操作符声明的变量并不是不同类型的变量,操作符只能指出变量在相关作用域中如何存在。

条件声明,由于let const声明的变量尽在包含它的代码块中有效,无法判断在全局作用域中是否声明过该变量,故不能依赖条件声明模式。

const声明变量,必须有初始值,而且声明的变量如果是原始值,则不能被修改