在JavaScript中typeof
是一个运算符和一个函数。它更适合用作操作员还是功能?为什么呢?
答案 0 :(得分:176)
typeof
是一名运营商。您可以使用以下方式轻松检查:
typeof(typeof)
如果是typeof
函数,此表达式将返回'function'
字符串,但会导致语法错误:
js> typeof(typeof);
typein:8: SyntaxError: syntax error:
typein:8: typeof(typeof);
typein:8: .............^
所以,typeof
不能成为一个函数。可能括号 - 符号typeof(foo)
使您认为typeof
是一个函数,但从语法上讲,这些括号不是函数调用 - 它们是用于分组的那些,就像{{1} }}。实际上,您可以添加任意数量的文件:
(2 + 3) *2
答案 1 :(得分:5)
我认为你根据清晰度挑选了你想要的东西,作为一种习惯,我通常以下列方式将其用作操作员,因为它非常清楚,至少是IMO:
if(typeof thing === "string") {
alert("this is a string");
}
if(typeof thing === "function") {
alert("this is a function");
}
这与此格式相反:
if(typeof(thing) === "string") {
alert("this is a string");
}
对我而言,阅读速度稍慢。如果你做typeof(thing)
它是同一件事,所以不管你的船是什么漂浮。 You can get a full read and what strings to expect from types here