let 与 var 的区别
1.var声明变量的时候 变量声明会提升且会赋值为undefined,let 不会;即在let声明变量之前使用该变量会报错,而var不会;
- var 声明变量的时候不会受块级作用域影响,let则只会在当前块级作用域生效 ;
注: if(){ //块级作用域} for(){// 块级作用域} , 块级作用域与 函数作用域是两个不同的概念
3.在全局作用域中声明变量时,var 声明的变量可以通过window对象来访问,let不行;
例如:
let a = 1
console.log(window.a) // undefined 无法访问
var b = 2
console.log(window.b) // 2
4.在同一个作用域中,使用var 对已经声明过的变量名进行再次声明,不会有任何影响(因为变量声明会提升,当有同名函数时,函数声明优先提升,var 会跳过此变量的提升和赋值为undefined的过程,避免覆盖),但是let 进行同样的操作时会报错,即无法使用let对已经存在的变量进行声明操作
暂时只想到这么多了,,,,
网友评论