不死鸟.亚历山大.狼崽子

不死鸟.亚历山大.狼崽子

1 作用域

var声明的变量具有函数级作用域,这意味着它们在全局作用域或函数内部都有效,且可以被全局访问。

let和const声明的变量具有块级作用域,这意味着它们只在声明它们的代码块内有效,不能跨块或跨函数访问。

2 变量提升

var声明的变量存在变量提升现象,即在声明之前使用变量不会报错,但会得到undefined。

let和const声明的变量不存在变量提升,如果在声明前使用会抛出ReferenceError错误。

3 重复声明

var声明的变量可以重复声明,后声明的同名变量会覆盖之前声明的变量。

let和const不允许在同一作用域下重复声明同一个变量名。

4 赋值

var和let声明的变量都可以被重新赋值。

const声明的变量是常量,一旦赋值后就不能被重新赋值,但对象或数组的内容可以被修改。

5 全局属性

在浏览器环境中,var声明的变量会成为window对象的属性,而let和const声明的变量不会这样做。

综上所述,var、let、const的主要区别在于它们的作用域、是否支持变量提升、是否允许重复声明、以及赋值的特性。在编写代码时,推荐使用let和const来声明变量,因为它们可以避免变量提升和重复声明等问题,从而使得代码更加安全和规范。

06-02 04:37