typeof null === "object"
typeof undefined === "undefined"
Number(null) => 0
Number(undefined) => NaN
null == undefined // true
null === undefined // false
var a; // undefined
b; // b is not defined
{} 的 valueOf 结果为 {} ,toString 的结果为 "[object Object]"
[] 的 valueOf 结果为 [] ,toString 的结果为 ""
未声明的变量使用 typeof 返回字符串 "undefined"
typeof 一个 let 定义的变量会因为暂时性死区报错 ReferenceError(前提:let/const未声明之前赋值或使用)
var tmp = 123;
if (true) {
tmp = 'abc'; // ReferenceError: tmp is not defined
let tmp;
}
console.log(typeof tmp); // ReferenceError: tmp is not defined
let tmp;
let tmp;
console.log(typeof tmp); // undefind 不会报错
typeof 能判断的类型有:string
、number
、boolean
、undefined
、symbol
、function
、bigint
、object
null
的输出结果为 'object'
其它类型都能正确判断'function'
其它都输出 'object'