首页 > 试题广场 >

setInterval("alert(welcome)",1

[单选题]
setInterval("alert('welcome')",1000);
这句代码的含义是?
  • 等待1000秒后,再弹出一个对话框
  • 等待1秒钟后弹出一个对话框
  • 每隔一秒钟弹出一个对话框
  • 语句报错,语法有问题
  • 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一次

大神来解答吧
编辑于 2022-03-18 11:58:06 回复(3)
这题真的醉了 学术性网站咱就不爆粗口了 在默认welcome已经定义的情况下 这题就是c答案 不会报错 会一直弹窗输出welcome变量的值
但是非得考你的眼力去看这个引号是中文还是英文  我把浏览器缩放比放到175才看出来 汗-_-||
发表于 2022-07-15 16:49:44 回复(0)
别管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);
编辑于 2022-01-27 14:24:33 回复(8)
D welcome 没有用引号包涵,默认是变量,但是前面没有定义welcome变量 所以选d
发表于 2021-12-20 20:40:34 回复(4)

参考 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') 返回值并不是一个函数, 因此是错误的.

发表于 2023-03-19 14:05:22 回复(2)
这里面的双引号,是他吗中文的 啊? 语法错误!
发表于 2022-03-25 20:56:32 回复(1)
如果welcome在之前定义过得话,B,如果没有的话,出错
发表于 2017-02-13 20:42:42 回复(3)
setinterval第一位可以传递字符串,也会当做函数来执行。
发表于 2022-11-08 08:56:23 回复(0)
首先,定时器的第一个参数可以是字符串,用法为setTimeout(code, delay)或setInterval(code, delay)

注意,是执行而不是调用,如果要通过字符串传入函数的话,函数后面需要加括号

这里选D应该是welcome没有定义。如果welcome定义了,则会每1秒弹一个对话框
发表于 2022-03-01 22:10:51 回复(0)
这个题目出的有歧义,alert会阻碍进程,不去手动点击确定,也就是弹出一次
发表于 2025-09-28 15:18:11 回复(0)
你要是跟我较中文符号的真,那我可要拿出你之前出的题了,全是中文符号
发表于 2024-10-06 09:45:18 回复(0)
怎么还有这种考中英文双引号的题目🙄🙄
发表于 2022-10-24 13:57:34 回复(0)
牛逼,整半天考中文
发表于 2022-09-11 17:55:57 回复(0)
这个题太离谱了吧    中英文的符号都出来了
+
发表于 2022-09-06 14:03:26 回复(0)
没看见welcome没有双引号 直接选C了…
发表于 2022-07-02 11:08:25 回复(0)
绝了,没看引号
发表于 2022-06-28 00:22:26 回复(0)
setInterval("alert('welcome')",1000);

发表于 2022-03-12 22:14:34 回复(0)
第一个括号,字符串无法执行
发表于 2022-02-26 16:35:07 回复(0)
定义了也不对,alert会阻塞进程
发表于 2022-02-22 12:59:34 回复(0)
C
发表于 2018-02-08 19:59:22 回复(1)