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