理解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