Javascript 使用全局变量时出错

Javascript 使用全局变量时出错,javascript,Javascript,我使用全局变量,如下所示: var someArray = new Array(); for(i=1;i<=50;i++) someArray[i] = 0; 在另一个功能中: if(something == anotherThing) { var i = 1; alert(someArray[1]); //returns fine; alert(someArray[i]); //returns undefined. } 我想不出这个错误 甚

我使用全局变量,如下所示:

var someArray = new Array();

for(i=1;i<=50;i++)

    someArray[i] = 0;
在另一个功能中:

if(something == anotherThing)

{
    var i = 1;

    alert(someArray[1]); //returns fine;

    alert(someArray[i]); //returns undefined.

}
我想不出这个错误

甚至使用:

window.someArray[x];
你的代码没有被破坏


请注意,使用globals是有害的。您应该找到一些方法来模块化代码。module8/browserify、requireJS/AMD&closures/namespace是实现这一点的常用方法。

您希望另一个函数中的
i
是什么?另外,使用
[]
而不是
新数组()
,根据您的解释,您所说的似乎是不可能的。你能创建一个JSFIDLE来说明吗?
x
实际上代表什么?您似乎正在使用不存在的变量。(而且,
i
是否有意全球化?)。没有任何代码段显示错误。如果你改进你的问题,我将取消我的反对票。@DᴀᴠᴇNᴇᴡᴛᴏɴ您不能使用普通字体吗:(您不能使用真正的浏览器吗?;)无论如何,您不能再编辑名称了。@DᴀᴠᴇNᴇᴡᴛᴏɴ我的意思是停止使用并非我所理解的所有stackoverflow名称默认字体的字体;合理的浏览器无论如何都应该显示它。但是不,我要到12月21日才能编辑我的名字@DᴀᴠᴇNᴇᴡᴛᴏɴ有一种方法可以绕过30天的限制。您必须在另一个Stack Exchange网站上创建配置文件(使用相同的帐户,并且配置文件也必须链接),并在其上获取所需的名称。然后在另一个配置文件的选项卡上,滚动到底部,单击“复制其他站点配置文件到所有StackExchange帐户”。它会将您的信息和姓名复制到您的SO帐户。
window.someArray[x];