判断 js 的数据类型
typeof 它会返回数据类型
!!!注:它只能判断基本类型
!!!注:它返回出来的内容是字符串
var a = 123;
console.log(typeof a); //Number
var a="123"
console.log(typeof a); //String
var a={}
console.log(typeof a); //Object
var a=null
console.log(typeof a); //Object(空对象)
var a=true||false
console.log(typeof a); //Boolean
var a
console.log(typeof a); //Undefined
instanceof 它会判断该类型是否属于某个类型,返回布尔值
!!!注:只有 new 出来的基本类型才能返回true
var obj = 123
console.log(obj instanceof Number) // false
var obj = new Number(123)
console.log(obj instanceof Number) // true
var obj = "123"
console.log(obj instanceof String) // false
var obj = []
console.log(obj instanceof Array) // true
var obj = true
console.log(obj instanceof Boolean) // false
var obj = new Boolean(true)
console.log(obj instanceof Boolean) // true
var obj = {}
console.log(obj instanceof Object) // true
Object.prototype.toString.call() 可以返回所有数据类型
var num = 123456
var str = "hhh"
var nul = null
var boo = true
var und = undefined
var arr = [1,2,3]
var obj = {
zhang:"san"
}
var da = new Date()
var pos = new Promise(function(res,rej){})
console.log(Object.prototype.toString.call(num)+"数值") // [object Number]数值
console.log(Object.prototype.toString.call(str)+"字符串") // [object String]字符串
console.log(Object.prototype.toString.call(nul)+"空") // [object Null]空
console.log(Object.prototype.toString.call(boo)+"布尔") // [object Boolean]布尔
console.log(Object.prototype.toString.call(und)+"未定义") // [object Undefined]未定义
console.log(Object.prototype.toString.call(arr)+"数组") // [object Array]数组
console.log(Object.prototype.toString.call(obj)+"对象") // [object Object]对象
console.log(Object.prototype.toString.call(da) +"时间") // [object Date]时间
console.log(Object.prototype.toString.call(pos) +"pos") // [object Promise]pos