Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 范围是在这里改变还是其他什么?_Javascript_Arrays_Variables_Scope - Fatal编程技术网

Javascript 范围是在这里改变还是其他什么?

Javascript 范围是在这里改变还是其他什么?,javascript,arrays,variables,scope,Javascript,Arrays,Variables,Scope,我对JavaScript非常缺乏经验,所以我真的不知道我做错了什么 这非常有效: myarray = []; myarray.push(1); 这也非常有效: myarray = []; function example(){ myarray.push(1); } example(); 这根本不起作用: myarray = []; function example(){ myarray.push(1); } $(window).load(function(){ exam

我对JavaScript非常缺乏经验,所以我真的不知道我做错了什么

这非常有效:

myarray = [];

myarray.push(1);
这也非常有效:

myarray = [];

function example(){
  myarray.push(1);
}

example();
这根本不起作用:

myarray = [];

function example(){
  myarray.push(1);
}

$(window).load(function(){
  example();
});
我是否正在使用
$(window.load)(function(){…
)更改作用域或其他内容


如何使
example()
像在第三个代码段的第二个代码段中那样执行?

window.onload事件在加载完整DOM时被激发,因此在第三个案例中example()将稍后运行,其他代码将更早运行

我复制了您的问题,可能是我不正确,但下面是运行代码,无论我观察到什么

myarray = [];

function example(){
  myarray.push(1);
}

$(window).load(function(){

  example();
});

setTimeout(function() {
    console.log(myarray);
},100);

如果您还有其他问题,请回答您自己的问题…我有兴趣更深入地了解您是否确实加载了jQuery?应该可以。尝试添加jQuery文件。如果有错误,请查看控制台中的错误。我无法重现您的问题:(在添加警报后,以便显示数组的值)我花了好几个小时试图弄清楚我做错了什么,但所有的时间我都忘记了。非常感谢。