我正在研究 Javascript 中的变量作用域,并且遇到了变量声明和变量初始化之间的区别。通过与我认识的开发人员交谈,我的理解是,var
在变量声明之前编写会将变量分配给本地范围,而var
在声明变量之前不编写会将变量分配给全局范围。这是真的?
如果在声明变量之前写 var 确实将变量分配给本地范围,那么是否需要var
稍后在初始化变量时将其保持在本地范围内?例如:
var someVariable;
// Do some things with JavaScript
someVariable = 'Some Value'
既然我someVariable
在局部作用域中用声明了var
,然后又someVariable
在没有使用的情况下进行了初始化var
,那么 JavaScript 是否认为我只是在局部作用域中初始化了一个变量,或者我在局部作用域中声明了一个变量,然后在全局中声明并初始化了另一个变量范围?
稍后,当我想再次更改的值someVariable
时,是否需要在变量表达式之前编写 var,或者 JavaScript 会知道我正在更改已声明的局部变量的值?从技术上讲,JavaScript 如何知道我何时更改已声明的局部变量的值,以及何时声明和初始化全局变量?