JavaScript基础知识 001—typeof和instanceof

理解typeof和instanceof

1.1 typeof

1.1.1 理解

我们都知道type是用来检测数据类型的,包括(string,number,boolean,object,function,undefined,Symbol

但是他也有一定的局限性,比如检测object,array,null都是object,这就使得我们无法具体判断他们的类型.

1.1.2 语法

返回值是字符串,表示当前变量的数据类型,可以根据自己喜欢的用法去使用,

1.typeof(表达式)	
2.typeof 变量名
复制代码

1.1.3 实例

可以检测的数据类型

console.log(typeof(1))	//number    
console.log(typeof(''))	//string
console.log(typeof(true))	//boolean
console.log(typeof({}))	//object
console.log(typeof(()=>{}))	//function
console.log(typeof(undefined))	//undefined
console.log(typeof(Symbol()))	//symbol
 
console.log(typeof 1 )	//number	当然你也可以这样用(手动狗头),结果都是一样的,就不一一举例了
复制代码

无法判别的数据类型

console.log(typeof({}))	//object
console.log(typeof(null))	//object
console.log(typeof([]))	//object
复制代码

1.2 instanceof

1.2.1 理解

用于检测构造函数的 prototype 属性是否出现在某个实例对象的原型链上。如果不懂原型与原型链的请阅读相关文章www.cnblogs.com/loveyaxin/p…

1.2.2 语法

检测右边变量的prototype是否在左边变量的原型链上,若找到则返回true,否则返回false

object instanceof constructor
复制代码

1.1.3 实例

function C () {}
function D () {}
let o=new C()
console.log(o instanceof C)	//true
C.prototype={}	//使得C的原型指向空对象,则空对象不在o的原型链上
console.log(o instanceof C)	//false  
console.log(o instanceof D)	//false
console.log(o instanceof Object)	//true
console.log(D instanceof Object)	//true  
复制代码

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

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享