gpt4 book ai didi

Javascript:基本 for 循环不起作用

转载 作者:行者123 更新时间:2023-11-28 19:08:38 27 4
gpt4 key购买 nike

是否有任何原因导致以下内容不起作用:

for (i=0;i < someArray.length;i++) {
if (someArray[i].indexOf("something") !== -1) {
//do something here
}
}

最基本的“for”循环可能。但这不起作用。在第一行(循环声明,而不是循环内部),我得到“ Uncaught ReferenceError ;i 未定义。”

我在一个 Chrome 选项卡中打开此页面,并在另一个选项卡中打开该页面的另一个早期版本。在另一个选项卡中,这个循环运行得很好;在第一个选项卡中,此代码会引发错误。

编辑 - 2015 年 7 月 2 日

关于严格模式的回复很有帮助。在阅读了一些代码并浏览了代码之后,我已经了解了发生了什么。

令人困惑的是,两个版本的代码看起来都是这样的,有一些细微的差别(requirejs 模块):

define(
'viewModels/someViewModel',
['dependency1', 'dependency2', 'dependency3'],
function(dep1, dep2, dep3) {

"use strict";

function SomeViewModel(arg1, arg2) {
var self = this;
self.initialize();

self.removeRefinement = function(refinementString) {
var refinementArray = refinementString.split("&");

for (i=0;i < navigationArray.length;i++) { //<-- error

}
}
}
}
);

一个版本会引发引用错误。有一个没有。

这是一个大型 Web 应用程序,包含许多其他页面和 Javascript 文件。我唯一能想到的是,在代码的一个版本中,也许我无意中在应用程序的其他地方全局定义了它,而严格模式未启用。运行到断点并检查“窗口”后,我发现这正是发生的情况。

谢谢=D

最佳答案

如果您位于 strict mode ,您将收到错误 Uncaught ReferenceError ; i 未定义。如果您未处于严格模式,则不会收到错误。

这将引发错误

'use strict'
var someArray = ['aaa', 'bbb', 'ccc'];

for (i=0;i < someArray.length;i++) {
console.log(i)
if (someArray[i].indexOf("something") !== -1) {
//do something here
}
}

这不会

var someArray = ['aaa', 'bbb', 'ccc'];

for (i=0;i < someArray.length;i++) {
console.log(i)
if (someArray[i].indexOf("something") !== -1) {
//do something here
}
}

关于Javascript:基本 for 循环不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31172406/

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