首页 > 试题广场 >

如果要在10秒后调用checkState,下列哪行代码是正确

[单选题]
如果要在10秒后调用checkState,下列哪行代码是正确的
  • window.setTimeout(checkState, 10);
  • window.setTimeout(checkState, 10000);
  • window.setTimeout(checkState(), 10);
  • window.setTimeout(checkState(), 10000);
function checkState(){
 alert("liyuming"); 
 }
 window.setTimeout(checkState(), 10000); //立即被调用 

window.setTimeout(checkState, 10000); // 10s后被调用 
window.setTimeout("checkState()", 10000); //10s后被调用 注意和第一个的区别 有引号

编辑于 2016-09-07 12:41:42 回复(11)
checkState不是一个函数 是对象 所以没有()
发表于 2016-03-08 23:20:34 回复(2)
发表于 2015-06-09 20:03:18 回复(0)
checkState加了圆括弧相当于函数表达式,会立即执行,执行的结果作为返回值传递给settimeout。
发表于 2016-03-09 22:35:31 回复(1)
选择B
因为setTimeout 方法, 指定 固定时间后运行 指定的 function 运行, 只运行一次, setInterval 是按照固定的时间 间隔运行。
这里setTimeOut 第一个参数 是函数名, checkState 传递函数的引用。   checkState() 表示立即调用这个函数, 第二个参数表示 时间, 单位为ms, 所以 10 s 应该为 10000
发表于 2016-09-01 00:21:27 回复(0)
写了一个函数运行了一下,不管是选择函数声明还是函数表达式,方式2调用,不加括号有延时,加括号就立即调用;如果用方式1,也就是加引号,则需加括号并有延时作用。原理待我研究好了再来补充。
ar fun = function(){
       // function fun(){
          alert("hello");
        }
      (1)  window.setTimeout('fun()',3000);
(2)window.setTimeout(fun,3000);
发表于 2016-04-13 21:07:24 回复(2)
D选项会立即执行:
因为setTimeout()会先判断第一个参数是否为「function」,如果不是,则会尝试将它当作字串处理。换句话说,会将checkState()执行后的回传值转为字符串,没有回传值,那就是undefined,于是
变成window.setTimeout(”undefined",10000)
于是10000ms 到了就什么事都没发生。

发表于 2019-04-17 11:49:48 回复(0)
settimeout(fun,10000)10秒后调用 settimeout(fun(),10000)立即调用 settimeout('fun()',10000)10秒后调用
发表于 2016-09-23 08:51:57 回复(0)
官方文档中:setTimeout(code,millisec);
code 要调用的函数后腰执行的JS代码串。所以选B,D为函数
发表于 2016-05-12 13:50:40 回复(1)
函数名其实就是指向函数体的指针 
不加括号, 可以认为是查看该函数的完整信息, 
不加括号传参,相当于传入函数整体 
加括号 表示立即调用(执行)这个函数里面的代码(花括号部分的代码)
发表于 2019-04-20 09:21:08 回复(1)
 window.setTimeout(checkState(), 10000); //立即被调用  window.setTimeout(checkState, 10000); // 10s后被调用  window.setTimeout("checkState()", 10000); //10s后被调用 注意和第一个的区别 有引号
发表于 2020-12-09 23:35:42 回复(0)
function checkState(){ alert("liyuming");  } window.setTimeout(checkState(), 10000); //立即被调用 window.setTimeout(checkState, 10000); // 10s后被调用 window.setTimeout("checkState()", 10000); //10s后被调用 注意和第一个的区别 有引号
发表于 2017-04-07 07:35:12 回复(0)
A 是10ms运行
C和D会直接运行
发表于 2015-07-17 22:52:11 回复(0)
https://www.cnblogs.com/fightjianxian/p/12350244.html
函数加括号就是函数立即执行,返回函数的执行结果,不加括号则是引用该函数
发表于 2022-01-03 14:12:48 回复(0)
①第二个参数单位是ms ②第一个参数为函数名时(没有括号) 则经过后面时间后执行该函数 ③第一个参数为 带括号 函数名时,会立即执行函数然后将返回的参数作为 第一个参数 。除非给这个带括号的函数名加上引号。
发表于 2019-09-27 16:52:56 回复(0)
checkState()是函数执行结果,checkState是函数引用,setTimeout第一个参数为回调函数,第二个为时间毫秒
发表于 2019-03-18 00:26:48 回复(0)
setTimeout的语法为
setTimeout(function(){},100)
所以第一个参数应该是一个函数,而不是函数执行的结果

发表于 2019-03-02 16:35:37 回复(0)
定义函数时,小括号可以看作函数名与参数的分隔符;
在其他情况下,函数名后的小括号是函数调用符,会立即调用函数。
发表于 2017-10-11 11:24:42 回复(0)
setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式。 语法 setTimeout(code,millisec) 参数描述 code必需。要调用的函数后要执行的 JavaScript 代码串。 millisec必需。在执行代码前需等待的毫秒数。
发表于 2017-02-24 11:22:25 回复(0)
选择B
因为setTimeout 方法, 指定 固定时间后运行 指定的 function 运行, 只运行一次, setInterval 是按照固定的时间 间隔运行。
这里setTimeOut 第一个参数 是函数名, checkState 传递函数的引用。   checkState() 表示立即调用这个函数, 第二个参数表示 时间, 单位为ms, 所以 10 s 应该为 10000
发表于 2022-10-13 22:33:20 回复(0)