var:
var 是在 ES5 中引入的声明变量的关键字。
在全局作用域和函数作用域中声明的 var 变量会被提升(hoisted)到函数或全局作用域的顶部。这意味着可以在声明前访问变量,但其赋值为 undefined。
全局声明的 var 变量会成为全局对象的属性。
var 声明的变量具有函数作用域,即变量在函数内部声明时有效,在函数外部不可访问。
let:
let 是在 ES6 中引入的声明块级作用域变量的关键字。
使用 let 声明的变量只在当前代码块({} 内)有效,不会被提升。
同一作用域内不允许重复声明同名的 let 变量。
适合在需要限制变量作用域的情况下使用。
const:
const 也是在 ES6 中引入的,用于声明常量(值不能被重新赋值)的关键字。
使用 const 声明的变量必须进行初始化赋值,且一旦赋值后就不能再修改。
const 声明的变量也具有块级作用域。
对于复杂类型(如对象或数组),使用 const 声明的变量指的是变量的引用不变,而非其值。
应用场景:
如果需要在块级作用域内声明变量,并且希望变量的值不可改变,可以使用 const。
如果变量的值会发生变化,但不需要跨块级作用域,可以使用 let。
如果在 ES6 之前的环境中,或者不需要块级作用域,可以使用 var。