typeof 操作符

typeof操作符也是一元操作符

其产生式(production)为:

UnaryExpression:typeof UnaryExpression

其求值过程如下:

 1、先对右侧的一元表达式求值,将结果赋给val

 2、 如果Type(val)是引用(Referecne),那么

     a、如果IsUnresolvableReference(val) 是true ,返回"undefinded"

     b、把GetValue(val)的结果赋给val

3、返回一个由Type(val)决定的字符串,相见下表

 基本规律为:如果是typeof的目标是基本类型(undefinded,number,string,boolean),结果为这些基本类型,null,比较特殊,返回object,其他情况如果目标是object(可以理解为复合类型)且没有实现内部属性[[call]],则结果为object,如果实现了[[call]]],则结果为function.

参考:

1、ecma 262 edition 5.1----11.4.3 The typeof Operator

2、http://bonsaiden.github.com/JavaScript-Garden/zh/#types (javascript秘密花园)

原文地址:https://www.cnblogs.com/argb/p/2115379.html