在JS中,除了使用var关键字之外,还有其他方法来初始化变量吗?

Is there another way to initialize a variable in JS other than using the var key word?

本文关键字:其他 方法 初始化 变量 JS 关键字 var      更新时间:2023-09-26

我正在编写下面的函数,我想到要问是否有另一种方法来实例化循环中的计数器变量,而不是使用var关键字?如果可能的话,也可以在非for循环的上下文中使用

显然这段代码不能工作。

function everyOther(arr) {
    var sum =0;
    for(i=0;i<arr.length;i+=2){
        sum+=arr[i];
    }
    return sum;
}

这个可以。我能忽略var关键字吗?

function everyOther(arr) {
    var sum =0;
    for(var i=0;i<arr.length;i+=2){
        sum+=arr[i];
    }
    return sum;
}

作为独立的工作。只有它设置全局的i变量,而不是使用本地的——参见var关键字的目的是什么,什么时候使用它(或省略它)?

然而,当您从另一个同样使用全局i变量的代码段调用everyOther时,它们可能会产生干扰。特别是如果来自另一个循环,它可能会干扰外部条件并导致无限循环。

您至少需要声明一个变量才能使用它。你也可以这样写:

function everyOther(arr) {
var sum =0;
var i = 0;
for(i=0;i<arr.length;i+=2){
    sum+=arr[i];
}
return sum;
}

因为你必须在使用任何变量之前声明它,如果你不使用,那意味着你已经将它声明为全局变量。

使用var总是一个好主意,以防止变量混淆global scope和变量相互冲突,导致不必要的覆盖。

使用var意味着你指定它为Local变量。
不指定var意味着将其作为Global变量。