lbp的blog

纸上得来终觉浅,绝知此事要躬行

0%

js对象类型判断

js 几种判断对象的方式, typeof Object.toString

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
// 基本数据类型
str = ''
boolean = true
number = 1
symbol = Symbol()
_undefined = undefined
_null = null
// 引用类型
array = []
fun = function(){}
obj = {}

const target = {
str,
boolean,
number,
symbol,
_undefined,
_null,
array,
fun
}
_toString = Object.prototype.toString

function test (target, title, fun) {
console.log('\n', title, '\n')
for (const key in target) {
console.log(key, fun(target[key]))
}
}
test(target, 'typeof', function (a) {
return typeof a
})

test(target, 'Object.prototype.toString', function (a) {
return Object.prototype.toString.call(a)
})

/**
typeof

str string
boolean boolean
number number
symbol symbol
_undefined undefined
_null object
array object
fun function

Object.prototype.toString

str [object String]
boolean [object Boolean]
number [object Number]
symbol [object Symbol]
_undefined [object Undefined]
_null [object Null]
array [object Array]
fun [object Function]

结论:
typeof:
引用类型,仅可以判断function
基本类型,可以判断除了null之外的类型

Object.prototype.toString.call()
可以判断所有
*/