typeof
is an operator. You can easily check it using:
typeof(typeof)
Were typeof
a function, this expression would return 'function'
string, but it results in a syntax error:
js> typeof(typeof);
typein:8: SyntaxError: syntax error:
typein:8: typeof(typeof);
typein:8: .............^
so, typeof
cannot be a function. Probably parenthesis-notation typeof(foo)
made you think typeof
is a function, but syntactically, those parenthesis are not function call - they are those used for grouping, just like (2 + 3) *2
. In fact, you can add any number of them you want:
typeof(((((foo))))); // is equal to typeof foo;
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…