Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.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_Html_Css_Settimeout - Fatal编程技术网

非工作Javascript超时事件

非工作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); 函数表达式(

我创建了一个180万毫秒后运行的函数(我使用1.8秒进行测试),但我使用的超时似乎从来都不起作用——即使它与我在其他所有web应用/网站上使用的超时完全相同

核心代码:

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
-