typeof是一个运算符和一个函数
在JavaScript中, typeof
是一个运算符和一个函数。 它更好地用作操作员还是功能? 为什么?
typeof
是一个操作符。 您可以使用以下方式轻松检查:
typeof(typeof)
是typeof
函数,这个表达式将返回'function'
的字符串,但它会导致一个语法错误:
js> typeof(typeof);
typein:8: SyntaxError: syntax error:
typein:8: typeof(typeof);
typein:8: .............^
所以, typeof
不能是一个函数。 可能括号记法typeof(foo)
让你认为typeof
是一个函数,但在语法上,这些括号不是函数调用 - 它们是用于分组的,就像(2 + 3) *2
。 事实上,你可以添加你想要的任意数量的:
typeof(((((foo))))); // is equal to typeof foo;
我认为你根据清晰度选择你想要的,作为一种习惯,我通常以下面的方式将它用作操作符,因为它很清楚,至少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)
它是一样的东西,所以不管漂浮你的船。 你可以在这里得到一个完整的阅读和期望的字符串。