JavaScript中变量的全局增量

JavaScript中变量的全局增量,javascript,Javascript,以下是全局Delaration的两个代码示例: var globalVariable = 'something'; 及 这些解决方案之间有什么区别,或者说它们有什么区别?哪一个是更好的解决方案?我应该避免这些解决方案之一吗?如果是,为什么 编辑:这两个变量都是在全局级别定义的。当您省略关键字var时,无论变量在何处定义,它都会使变量自动成为全局变量。因此,即使它是在函数中定义的,它也将随处可见 所以,第二个选项globalVariable='something'使其全球化 其中,作为第一个选项

以下是全局Delaration的两个代码示例:

var globalVariable = 'something';

这些解决方案之间有什么区别,或者说它们有什么区别?哪一个是更好的解决方案?我应该避免这些解决方案之一吗?如果是,为什么


编辑:这两个变量都是在全局级别定义的。

当您省略关键字
var
时,无论变量在何处定义,它都会使变量自动成为全局变量。因此,即使它是在函数中定义的,它也将随处可见

所以,第二个选项
globalVariable='something'使其全球化

其中,作为第一个选项,
var globalVariable='something'只有在全局级别定义时才是全局的。例如,如果这是在函数中定义的,那么它将仅对该函数可见

除非必要,否则建议避免声明全局变量


更多关于作用域的信息-

当您省略关键字
var
时,无论变量定义在何处,它都会使变量自动成为全局变量。因此,即使它是在函数中定义的,它也将随处可见

所以,第二个选项
globalVariable='something'使其全球化

其中,作为第一个选项,
var globalVariable='something'只有在全局级别定义时才是全局的。例如,如果这是在函数中定义的,那么它将仅对该函数可见

除非必要,否则建议避免声明全局变量


关于作用域的更多信息-

如果将其放置在全局作用域中,则第一个仅为全局声明,但通常,如果需要全局变量,则应在全局作用域中显式声明它(即使以后仅为其赋值)

第二个变量将始终创建一个全局变量

也就是说,你应该避免两种选择。你几乎从来都不需要全局变量。在全局变量很有用的情况下,通常最好将脚本包装在IIFE中,并在该级别声明变量

(function () {
    var not_quite_a_global;

    function foo() {
        not_quite_a_global = 1;
    }
}());

这可以防止它们与同时加载的其他脚本或模块中具有相同名称的其他变量发生冲突。

如果将其放置在全局范围内,则第一个仅为全局声明,但通常,如果需要全局变量,则应显式地将其声明在全局范围内(即使以后仅为其赋值)

第二个变量将始终创建一个全局变量

也就是说,你应该避免这两种选择。你几乎从来没有真正需要全局变量。在全局变量有用的情况下,通常最好将你的脚本包装在IIFE中,并在该级别声明你的变量

(function () {
    var not_quite_a_global;

    function foo() {
        not_quite_a_global = 1;
    }
}());

这可以防止它们与同时加载的其他脚本或模块中具有相同名称的其他变量发生冲突。

在全局上下文中声明,即在浏览器中的
窗口下,它们是相同的,但最好始终使用
var
语句,以免在其他地方无意中忘记它创建全局。在全局上下文中声明,即在浏览器中的
窗口下,它们是相同的,但最好始终使用
var
语句,以免在其他地方忘记它而无意中创建全局。您可能不想在此处链接到w3schools,我们中的一些人确实反对它。请访问以了解原因这里是对
var
关键字的ood解释:您可能不想在这里链接到w3schools,我们中的一些人确实反对它。访问了解原因…这里是对
var
关键字的一个很好的解释: