gpt4 book ai didi

javascript - 我应该如何在 javascript 中声明游标变量?

转载 作者:行者123 更新时间:2023-11-30 12:37:00 24 4
gpt4 key购买 nike

正如我们所知,javascript 没有BLOCK SCOPE,所以当我编写如下的 for 循环时:

list = [1, 2, 3, 4];
// notice about the `var` keyword
for(var i = 0; i < list.length; ++i) {
// Do something.
}
console.log(i); // shows 4

问题是:我应该使用 var 来声明变量 i 吗?


如果是:

当我有两个或多个连续的for循环时,我想使用同一个游标变量i,它会被声明多次!那简直就是有问题!

for(var i = 0; i < list1.length; ++i) {
// do something.
}

for(var i = 0; i < list2.length; ++i) {
// do something.
}

// `i` was declared more than once!

在这种形式中,游标变量i 可能声明了不止一次,并且代码本身意味着i 变量很可能在for block 内有一个作用域,但确实不是。


如果不是这样:

我是否应该在函数的前面显式声明 all for 游标?

var i, j, k; // and maybe a long list that I didn't expected?

// Maybe some other code.

for(i = 0; i < count1; ++i) {
// do something
}

for(j = 0; j < count2; ++j) {
// do something
}

for(k = 0; k < count3; ++k) {
// do something
}

如果我这样编码,我认为代码很糟糕:它在声明和使用之间有很长的距离,并且在声明时模糊不清它们是什么。

如果我省略它们所有的声明,而只是使用,这些游标变量属于全局!那更可怕!


所以我要求一个好的实践,在这种情况下如何声明游标变量?

需要你的帮助。

最佳答案

通常最简单的方法是声明变量,然后在多个非嵌套循环中使用它。

var i;

for(i = 0; i < list1.length; i++) {
// do something.
}

for(i = 0; i < list2.length; i++) {
// do something.
}

在多个循环中复用i是没有问题的。第二次循环一开始,该值就设置为初始值,一切正常。

关于javascript - 我应该如何在 javascript 中声明游标变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25776453/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com