gpt4 book ai didi

javascript - 在for循环中声明两个变量

转载 作者:行者123 更新时间:2023-12-03 02:23:03 31 4
gpt4 key购买 nike

是否可以在 for 循环的初始化部分声明两个变量?我想对字符串的每个字符调用一个函数。

for(var i = 0, c = aString.charAt(i); i < aString.length; i++){//problem here: not itterating
alert("c: "+c)
func1[typeOfChar(c)]++
}

问题是字符串没有被迭代,因为 c 始终是字符串的第一个字母。顺便说一句,警报只是为了排除故障。

我很好奇,为什么c在声明时不需要var关键字?

更新:可以正常工作了。我本来不想问,但我注意到仍在进行编辑,我习惯不使用分号,因为它们是可选的。没有它们如何编写 for 循环?我不添加它们是因为我认为它越少越简单,或者它们是否提高了可读性?

最佳答案

您希望 c 在每次迭代时更改,而不是在循环开始时声明它,请尝试

var i,c;
for(i = 0,c=aString.charAt(0); i < aString.length; ++i, c = aString.charAt(i)){
alert("c: "+c)
func1[typeOfChar(c)]++
}

就其值(value)而言,我认为它不会产生非常可读的代码,我会将其放在第一行。

这里有一些信息 on the comma operator你正在使用。

另请注意,javascript 没有 for 循环的 block 作用域,因此您实际上是在当前作用域的顶部声明 ic (这通常是当前函数的顶部,或全局作用域的顶部)。

这是一个 fiddle :http://jsfiddle.net/maWua/

关于javascript - 在for循环中声明两个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14696261/

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