使用单引号与不使用引号的函数调用
Function call using single quotes vs no quotes
以下代码段使用函数setInterval((不断更新"时钟"。唯一的区别在于函数调用setInterval((。
当我从更改setInterval参数时
setInterval('updateTime()',1000);
至
setInterval(updateTime(),1000);
[从单引号到无引号],它不起作用。有人能向我解释一下吗?
单一报价:
<head>
<script>
function updateTime(){
var today = new Date();
var h = today.getHours();
var m = today.getMinutes();
var s = today.getSeconds();
var now= h+':'+m+':'+s;
document.getElementById('timer').innerHTML = h+':'+m+':'+s;//set the text in 'timer' id below to the date
setInterval('updateTime()', 1000); //////SEE THIS LINE//////
}
</script>
</head>
<body>
<p id='timer'> Time </p>
<script>
updateTime();
</script>
</body>
无报价:
<head>
<script>
function updateTime(){
var today = new Date();
var h = today.getHours();
var m = today.getMinutes();
var s = today.getSeconds();
var now= h+':'+m+':'+s;
document.getElementById('timer').innerHTML = h+':'+m+':'+s;//set the text in 'timer' id below to the date
setInterval(updateTime(), 1000);//////SEE THIS LINE//////
}
</script>
</head>
<body>
<p id='timer'> Time </p>
<script>
updateTime();
</script>
</body>
用于测试的在线js控制台可以在这里找到:https://jsfiddle.net/
setInterval('updateTime()', 1000);
您正在将字符串作为第一个参数传递给setInterval。您需要通过函数引用
正确方式
setInterval(updateTime, 1000)
尝试这样做setInterval(updateTime, 1000);
没有((
现在来问为什么。
如果字符串,则Setinterval函数评估内容;如果函数名,则执行
解释它为什么立即执行带括号的updateTime((是因为它试图在区间循环中执行updateTime函数的输出,如果不返回任何内容,则该输出将是未定义的,如果返回字符串,则将被视为函数名。其他任何内容都将被忽略或抛出错误。
希望对有所帮助
如果您将第二个代码更改为
setInterval(updateTime,1000);
它应该起作用。原因是^您正在将函数指针传递给setInterval,而在您的回答中updateTime((正在将updateTime的返回值传递给setInterval。
相关文章:
- 调用函数和单击动画
- 单引号 JSP 到 JavaScript 函数
- 具有自定义函数调用的 HTML 表单
- 在PHP代码中单击链接javascript函数调用
- 如何在javascript中的eval函数中添加单引号
- 为ajax调用转义单引号
- javascript函数中的单引号
- 在另一个C#按钮单击处理程序之前,从OnClientClick函数调用C#按钮处理程序
- 防止单击和检索函数调用的参数
- D3 JavaScript 单击函数调用
- 从提交输入对函数的单击调用不起作用
- 在页面加载/单击事件后,从 JS 文件 1 中的函数调用 JS 文件 2 中定义的函数失败
- JavaScript Alert() 函数中的单引号转义
- HTML 表单模糊 调用 PHP 的 JQuery 函数调用
- 引导表:是否可以调用从代码中按列对行进行排序的函数(无需单击标题)
- 意外的JavaScript(jQuery)行为(函数调用,而不是表单提交)
- jQuery函数在单击事件中调用
- 单引号'在javascript函数调用
- 带有单引号字符串的DataBind没有调用javaScript函数
- 使用单引号与不使用引号的函数调用