let和var的区别
1、作用域不同(va r函数作用域,let块级作用域)
2、let不能在定义之前访问该变量,但va r可以。(var变量提升被初始化undefined,letlet和const定义的变量提升不会被初始化所以不能引用)
3、let不能被重新定义,但var可以

⚠️var默认被挂载顶层对象window对象下,会造成全局环境变量不可控
⚠️var允许多次生命一个变量而不报错,造成代码不容易维护
⚠️const定义变量的引用其实是一个指针,即使指针指向的东西改变了,但只要指针没有改变,就不会报错的。所以,建议只使用const定义简单类型的数据,定义对象还是使用let会不容易产生歧义。



展开
评论