typeof是一个操作符和一个函数

时间:2010-05-09 11:44:48

标签: javascript

在JavaScript中typeof是一个运算符和一个函数。它更适合用作操作员还是功能?为什么呢?

2 个答案:

答案 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