JavaScript基础知识 004---类型检测

121 阅读1分钟

1.1 typeof()

缺点:不能判别出object,array,null

console.log(typeof({}))		//object
console.log(typeof([]))		//object
console.log(typeof(null))	//object

1.2 instanceof

利用原型prototype

console.log([] instanceof Array)	//true
console.log({} instanceof Object)	//true

1.3 constructor

利用构造函数,

缺点:不能判断null和undefined,并且一旦重写prototype 会导致指向错误

let str='123'	
let num=1		
let obj={}		
let arr=[]		
let isNull=null		
let isUndefined=undefined	
console.log(str.constructor)	//[Function: String]
console.log(num.constructor)	//[Function: Number]
console.log(obj.constructor)	//[Function: Object]
console.log(arr.constructor)	//[Function: Array]
console.log(isNull.constructor)		//error
console.log(isUndefined.constructor)	//error

1.4 toString()

利用Object的原型方法 Object.prototype.toString()

let str='123'
let num=1
let obj={}
let arr=[]
let flag=true
let isNull=null
let isUndefined=undefined
console.log(Object.prototype.toString.call(str))	//[object String]
console.log(Object.prototype.toString.call(num))	//[object Number]
console.log(Object.prototype.toString.call(obj))	//[object Object]
console.log(Object.prototype.toString.call(arr))	//[object Array]
console.log(Object.prototype.toString.call(flag))	//[object Boolean]
console.log(Object.prototype.toString.call(isNull))	//[object Null]
console.log(Object.prototype.toString.call(isUndefined))	//[object Undefined]

如果觉得有帮助欢迎点赞、评论。 上述内容仅仅代表个人观点,如有错误,请指正。如果你也对前端感兴趣,欢迎访问我的个人博客sundestiny.github.io/myblog/