1 typeof 是判断类型 2 3 typeof 123 // "number" 4 typeof '123' // "string" 5 typeof false // "boolean" 6 function f() {} 7 typeof f 8 // "function" 9 typeof undefined 10 // "undefined" 11 //利用这一点,typeof可以用来检查一个没有声明的变量,而不报错。 12 v 13 typeof v 14 // "undefined" 变量v没有用var命令声明,直接使用就会报错。但是,放在typeof后面,就不报错了,而是返回undefined。 15 16 typeof window // "object" 17 typeof {} // "object" 18 typeof [] // "object" 19 typeof null // "object" 20 //除此以外,其他情况都返回object。 21 22 if ([]) { 23 console.log(true); 24 } 25 // true 26 27 if ({}) { 28 console.log(true); 29 } 30 // true 31 //需要特别注意的是,空数组([])和空对象({})对应的布尔值,都是true。 32 //typeof对数组(array)和对象(object)的显示结果都是object,那么怎么区分它们呢?instanceof运算符可以做到。 33 34 var o = {}; 35 var a = []; 36 37 o instanceof Array // false 38 a instanceof Array // true