Skip to content

typeof

typeof基本判断

类型结果描述
Undefined"undefined"
Null"object"最初实现中,object标签为0,Null的标签为0x00, 所以null被误认为object
Boolean"boolean"
Number"number"
BigInt"bigint"
String"string"
Symbol"symbol"
宿主对象取决于具体实现
Function对象"function"除 Function 外的所有构造函数的类型都是 'object, Number
其他任何对象"object"

运算优先级

异常

在 let 和 const 声明之前,对一个变量使用 typeof 会抛出 ReferenceError,块作用域变量在块的头部处于 暂存死区

typeof undeclaredVariable === 'undefined';

typeof newLetVariable; // ReferenceError
typeof newConstVariable; // ReferenceError
typeof newClass; // ReferenceError

let newLetVariable;
const newConstVariable = 'hello';
class newClass{};

例外

所有浏览器都存在 typeof document.all === undefined