let和var的区别

41 阅读1分钟

区别:

  1. 作用域不同

    • var函数作用域,变量声明会提升到函数顶部,即使在块内声明也能在块外访问。
    • let块作用域,只在当前块 {} 内有效,块外无法访问。
  2. 变量提升不同

    • var 会提升变量声明,但赋值留在原地,因此未赋值前是 undefined
    • let 也会提升,但在声明之前存在 暂时性死区,访问会报错。
  3. 重复声明不同

    • var 允许在同一作用域内重复声明同名变量。
    • let 不允许重复声明。
  4. 全局绑定不同

    • 在全局作用域中,var 声明的变量会成为 window 对象的属性。
    • let 声明的变量不会绑定到 window

推荐优先使用 let

let 避免了作用域污染、变量提升的潜在问题,更适合现代 JavaScript 开发