作用域来说
let`和`const`声明的变量具有块级作用域,这意味着它们只在当前代码块内有效,而`var`
声明的变量具有函数级作用域,即在整个函数内有效
变量提升
`var`声明的变量存在变量提升现象,即在声明前使用变量也不会报错,
但变量的值为undefined。而`let`和`const`声明的变量不存在变量提升,
如果在声明前使用变量会抛出ReferenceError错误
重复声明
`var`声明的变量可以被重复声明,而`let`和`const`声明的变量不允许重复声明。
window对象的属性和方法
- window对象的属性和方法:在全局作用域中,`var`声明的变量,通过function声明的函数,会自动变成window对象的属性或者方法。而`let`、`const`不会。