【发布时间】:2013-02-13 20:12:33
【问题描述】:
我正在研究 Javascript 中的变量作用域,并且遇到了变量声明和变量初始化之间的区别。通过与我认识的开发人员交谈,我的理解是,在变量声明之前编写 var 会将变量分配给本地范围,而在声明变量之前不编写 var 会将变量分配给全局范围。这是真的?
如果在声明变量之前写var确实将变量赋给了局部作用域,那么在初始化变量时是否需要写var以使其保持在局部作用域中?例如:
var someVariable;
// Do some things with JavaScript
someVariable = 'Some Value'
由于我在本地范围内用var 声明了someVariable,然后在没有使用var 的情况下初始化了someVariable,JavaScript 是否认为我只是在本地范围内初始化了一个变量,或者我声明了一个变量在本地范围内,然后声明并在全局范围内初始化另一个变量?
稍后,当我想再次更改someVariable 的值时,是否需要在变量表达式之前编写 var,或者 JavaScript 会知道我正在更改已声明的局部变量的值?从技术上讲,JavaScript 如何知道我何时更改已声明的局部变量的值,以及何时声明和初始化全局变量?
【问题讨论】:
-
我还要补充一点,我目前正在努力提高我对在谈论 JavaScript 时使用的正确术语的理解。因此,我不会因为我使用术语的方式被纠正而感到不安。
标签: javascript scope