- typeOf
var str = 1
typeOf str
返回 number
複製程式碼
判斷區分不了Array,Object
- instancof
var arr = []
arr instanceof Array
返回true
複製程式碼
instanceof 是根據物件的constructor判斷的,更改了constructor屬性就會判斷錯誤
- Object.prototype.toString.call()
var arr = []
Object.prototype.toString.call(arr)
返回 "[Object Array]"
function DataType(n){
var reg = /\[object (\w+)\]/
reg.test(Object.prototype.toString.call(n))
return RegExp.$1
}
複製程式碼