setInterval("alert('welcome')", 1000); // 使用 'welcome' 字面量
setInterval(alert('welcome'),1000); 立刻弹窗welcome 只弹一次
setInterval(alert(welcome),1000); 没有定义welcome 报错一次
setInterval("alert('welcome')",1000);每隔一秒弹窗welcome一次
setInterval("alert(welcome)",1000);没有定义welcome 每隔一秒报错一次
let welcome='welcome'
setInterval("alert(welcome)",1000); 每隔一秒弹窗welcome一次
别管welcome有没有声明
setInterval传递的第一个参数是字符串,你要他怎么执行?
如果第一个参数不是字符串,才会涉及到welcome要作为变量输出,还是作为字符串输出的问题
正确输出:字符串
setInterval(alert('welcome'),1000);
错误输出:1、welcome作为变量未定义 :ReferenceError: welcome is not defined
setInterval(alert(welcome),1000);
错误输出:2、setInterval第一个参数是字符串 :SyntaxError: Invalid or unexpected token
setInterval(“alert('welcome')”,1000);
参考 MDN 上的说明, setInterval 有两种调用方式:
var intervalID = setInterval(func, [delay, arg1, arg2, ...]);
var intervalID = setInterval(code, [delay]);
第一种用法是最常见的, 第一个参数传入的是一个函数, 例如
setInterval(function () { alert("welcome") }, 1000);
会每隔一秒弹窗一次.
第二种用法比较少见, 第一个参数传入的是一个 string 类型的代码 code, 会被类似于 eval() 函数的方式解释执行, 例如
setInterval('alert("welcome")', 1000);
会每隔一秒弹窗一次.
其相当于
setInterval(function () { eval('alert("welcome")') }, 1000);
这道题的代码有两个地方错误:
setInterval(“alert(welcome)”, 1000); // 错误写法!!!
第一个地方是使用了中文引号, 这个就不多说了.
第二个地方是内部的 welcome 既不是字符串字面量, 也不是变量 (没有定义 welcome 变量), 因此即使第一个地方改用了英文引号, 也仍然会报错.
正确写法是:
setInterval("alert('welcome')", 1000); // 使用 'welcome' 字面量
或
var welcome = "welcome"; // 定义了 welcome 变量
setInterval("alert(welcome)", 1000);
顺带一提, 高赞半斤六两5的写法:
setInterval(alert('welcome'), 1000); // 错误写法!!!
是错误的, 因为 setInterval() 的第一个参数应该传入函数, 例如传入 function () { alert('welcome') } 或 () => alert('welcome'), 而 alert('welcome') 是一个立即执行了的函数, 其返回值会被当成第一个参数传入 setInterval(), 但是 alert('welcome') 返回值并不是一个函数, 因此是错误的
__EOF__

本文链接:https://www.cnblogs.com/longmo666/p/17825428.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)