在Js中三种声明变量的方式: var、 let、const,建议使用优先级: const > let > var
1. var定义变量,没有块的概念,可以跨快访问,不能跨函数访问,不初始化会出现undefined,不会报错
2. let定义变量,只能在块作用域里访问,也不能跨函数访问,对函数外部无影响。
3. const定义常量,只能在块作用域里访问,也不能跨函数访问,使用时必须初始化(即必须赋值),而且不能修改
1.1 - Es6中提出的let、const。let完全可以替代var,因为两者语义相同,而且let没有副作用(var存在变量提升效果,let没有)
if (true) {
console.log(x) // ReferenceError
let x = 'hello'
}
把let换成var就不会报错了
1.2 - 在let和const之间,建议优先使用const,尤其是在全局环境,不应该设置变量,只应设置常量。
原因:1.const可以提醒阅读程序的人,这个是变量不应该改变
2.const比较符合函数式编程思想,运算不改变值,只是新建值,而且这样也有利于将来的分布式运算
3.js编辑器会对const进行优化
所以多使用const,有利于提高程序的运行效率