非工作Javascript超时事件
我创建了一个180万毫秒后运行的函数(我使用1.8秒进行测试),但我使用的超时似乎从来都不起作用——即使它与我在其他所有web应用/网站上使用的超时完全相同 核心代码:非工作Javascript超时事件,javascript,html,css,settimeout,Javascript,Html,Css,Settimeout,我创建了一个180万毫秒后运行的函数(我使用1.8秒进行测试),但我使用的超时似乎从来都不起作用——即使它与我在其他所有web应用/网站上使用的超时完全相同 核心代码: setTimeout(Test, 10); var Test = function(){ alert("KEMAH"); }; jsidle:将超时放在函数表达式之后 var Test = function(){ alert("KEMAH"); }; setTimeout(Test, 10); 函数表达式(
setTimeout(Test, 10);
var Test = function(){
alert("KEMAH");
};
jsidle:将超时放在函数表达式之后
var Test = function(){
alert("KEMAH");
};
setTimeout(Test, 10);
函数表达式(分配给变量的函数)不在范围内“提升”。因此,代码按照它们出现的顺序执行
另一方面,函数声明被提升到作用域中,因此下面的代码可以完美地运行。注意函数是如何声明的。它被声明为一个名为Test
的函数,而不是一个分配给变量Test
的函数:
//because JavaScript treats function declarations as if they were declared
//UP HERE <--------------.
//|
setTimeout(Test, 10); //|
//|
function Test(){ //------'
alert("KEMAH");
};
//因为JavaScript将函数声明视为已声明
//在这里将超时放在函数表达式之后
var Test = function(){
alert("KEMAH");
};
setTimeout(Test, 10);
函数表达式(分配给变量的函数)不在范围内“提升”。因此,代码按照它们出现的顺序执行
另一方面,函数声明被提升到作用域中,因此下面的代码可以完美地运行。注意函数是如何声明的。它被声明为一个名为Test
的函数,而不是一个分配给变量Test
的函数:
//because JavaScript treats function declarations as if they were declared
//UP HERE <--------------.
//|
setTimeout(Test, 10); //|
//|
function Test(){ //------'
alert("KEMAH");
};
//因为JavaScript将函数声明视为已声明
//此处更改为:
setTimeout(Test, 10);
function Test(){
alert("KEMAH");
};
或者在使用它之前将var Test=function{…
因为当时setTimeout
中的测试
未定义。更改为:
setTimeout(Test, 10);
function Test(){
alert("KEMAH");
};
或者在使用它之前将var Test=function{…
因为当时setTimeout
中的Test
是未定义的
。或者您可以在内部提供函数
setTimeout(function(){
alert("KEMAH");
}, 10);
或者你可以在里面给出函数
setTimeout(function(){
alert("KEMAH");
}, 10);
编辑:
我正在使用(在复杂场景中):
编辑:
我正在使用(在复杂场景中):
不要将字符串用作setTimeout
/setInterval
的第一个参数-不要将字符串用作setTimeout
/setInterval
-