JavaScript 变量
阐述
语法
用 var
, let
, 或 const
定义变量,变量命名可以用包括字母、下划线、$
和数字在内的大多数 Unicode 字符,但不能以数字开头。const
变量必须初始化。变量初始化时支 持 JavaScript 解构赋值。
语义
var
和 let
变量不初始化时默认为 undefined
。
var
var
用于声明全局、模块或函数作用域内的变量。不在任何函数内定义的变量具有全局作用域;以变量方式定义的函数也是一个全局变量。
由于 var
变量不具有块作用域,它在函数体内的实际行为是「变量提升」,即表现得如同在函数开头声明或全局开头声明一样。
- 被提升的值在实际赋值前获得值
undefined
;所以我们如果要使用var
变量,最好在函数内部首先声明所有变量。 - 被提升的函数将与其定义一同提升
let
let
除了 var
的语义外,还可以声明块作用域(如 if
, while
, for
等的花括号)内的变量。
const
const
用于定义全局、模块、函数或块作用域内的常量。
全局变量
在浏览器中,全局作用域的变量本质上是 window
的一个属性,可以用 window.xxx
访问;在所有环境中,都可以用 globalThis
来指代这个全局对象。