返回
JavaScript var、let、const小结(简洁版一目了然)
前端
2023-09-04 21:15:02
var
-
变量声明:
- 在函数外部声明:全局变量(成为
window
对象的属性) - 在函数内部声明:局部变量(若在函数内部不声明直接赋值:全局变量(不推荐且在严格模式会抛出
ReferenceError
)
- 在函数外部声明:全局变量(成为
-
变量提升:
- 变量声明会提升到函数或块的顶部,但是变量的值不会提升,因此在变量声明之前访问变量会抛出
ReferenceError
- 变量声明会提升到函数或块的顶部,但是变量的值不会提升,因此在变量声明之前访问变量会抛出
-
作用域:
- 全局变量:在整个脚本中都可以访问
- 局部变量:只能在声明它的函数或块中访问
let
-
变量声明:
- 只能在函数或块中声明
- 在严格模式下,必须在使用之前声明
-
变量提升:
- 变量声明会提升到函数或块的顶部,并且值也会提升
-
作用域:
- 只能在声明它的函数或块中访问
const
-
变量声明:
- 只能在函数或块中声明,且必须初始化
- 在严格模式下,必须在使用之前声明
-
变量提升:
- 变量声明会提升到函数或块的顶部,并且值也会提升
-
作用域:
- 只能在声明它的函数或块中访问
-
其他:
const
声明的变量的值不能被重新赋值
总结
特性 | var | let | const |
---|---|---|---|
变量声明 | 在函数外部或内部声明 | 只能在函数或块中声明 | 只能在函数或块中声明,且必须初始化 |
变量提升 | 变量声明会提升到函数或块的顶部,但值不会提升 | 变量声明和值都会提升到函数或块的顶部 | 变量声明和值都会提升到函数或块的顶部 |
作用域 | 全局变量或局部变量 | 只在声明它的函数或块中访问 | 只在声明它的函数或块中访问 |
其他 | 无 | 无 | 值不能被重新赋值 |