大家好,欢迎来到IT知识分享网。
1、typeof
typeof是一个操作符而不是函数,用来检测给定变量的数据类型 常用于检测如下类型:
string,number,boolean,undefined,symbol
typeof原理:
不同的对象在底层都表示为二进制,在Javascript中二进制前(低)三位存储其类型信息。
- 000: 对象
- 010: 浮点数
- 100:字符串
- 110: 布尔
- 1: 整数
typeof null 为什么为object?
答:不同的对象在底层都表示为二进制,在Javascript中二进制前(低)三位都为0的话会被判断为Object类型,null的二进制表示全为0,自然前三位也是0,所以执行typeof时会返回”object”。
2、instanceof
判断引用数据类型
一个对象是否为某一个构造函数的实例;或者说判断一个实例是否属于某种类型
console.log({} instanceof Object) // true // 也可以判断一个实例是否是其父类型或者祖先类型的实例 console.log([] instanceof Object) // true console.log([] instanceof Array) // true function Foo() {} let f = new Foo() console.log(f instanceof Foo) //true
instanceof的实现原理
function instanceof2(L, R) { //L是表达式左边,R是表达式右边 const O = R.prototype; L = L.__proto__; while(true) { if (L === null) return false; if (L === O) // 这里重点:当 L 严格等于 0 时,返回 true return true; L = L.__proto__; } } instanceof2([],Object) //true
3、Object.prototype.toString.call()
一般利用原型属性来判断数据类型
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/179881.html