【发布时间】:2017-02-25 08:41:59
【问题描述】:
在当前的 Google Chrome v56.0 和 Safari v9.1 中是这样:
在调试器控制台中,如果我输入:
> console.log(1, typeof 1)
1 "number"
> console.log("1", typeof 1)
1 number
为什么第一个是"number" 而第二个是number? (也就是说,为什么引用了第一个而没有引用第二个?
【问题讨论】:
-
我认为是一个特定的问题
-
我与控制台的结果相同(正如我先写的那样)
-
好的,我删除了该评论
-
这是一个奇怪的语法高亮差异......如果它是一个字符串,日志的第一个参数将永远是黑色的,那么后面的所有字符串参数也将是黑色的。但是如果第一个参数是其他类型,那么所有后面的字符串参数都是红色的,带引号。例如
log("1", 1, "1")字符串为黑色,log(null, "1", "1")字符串为红色,log("1", null, "1")字符串为黑色。 -
控制台的行为不是标准化的(即它依赖于实现)。你为什么关心这些差异? typeof 总是返回一个字符串,无论是在控制台中表示为
"number"还是number都不是特别重要。
标签: javascript google-chrome safari typeof