js检验对象类型的方法instanceof操作符Object.prototype.toString.call
用typeof能区别出string
, number
, boolean
, undefined
,object
instanceof
但是想要知道object是什么类型就要用 instanceof
操作符了数组(Array)
,对象(Object)
,正则(RegExp)
,null
,Function
都属于对象
1 | let arr = [1, 2, 3], |
结果图:
instanceof
用于测试构造函数的prototype属性是否出现在对象的原型链中的任何位置
- 解读:
用于判断某个对象是不是某个构造函数的一个实例,或者是不是某个构造函数的一个后代实例
- 语法:
对象 instanceof 数据类型(或者构造函数名):返回true/false
- 解读:
即比较对象.__proto__和数据类型(构造函数).prototype,如果相等就为true,
不同就继续跟着对象的原型链,比较对象隐式原型里的隐式原型与数据类型(构造函数).prototype
根据原型链的知识直到原型链的最终
,指向Object.prototype.__proto__---为null
判断两个函数是不是在同一条原形链
1 | var Student = function (score) { |
Object.prototype.toString.call()
用法:Object.prototype.toString.call(value)
这是对象的一个原生原型扩展函数,用来精确的区分数据类型…
toString方法的作用是返回一个对象的字符串形式,默认情况下返回类型字符串。
- 数值:返回
[object Number]
。 - 字符串:返回
[object String]
。 - 布尔值:返回
[object Boolean]
。 - undefined:返回
[object Undefined]
。 - null:返回
[object Null]
。 - 数组:返回
[object Array]
。 - arguments对象:返回
[object Arguments]
。 - 函数:返回
[object Function]
。 - Error对象:返回
[object Error]
。 - Date对象:返回
[object Date]
。 - RegExp对象:返回
[object RegExp]
。 - 其他对象:返回
[object Object]
。
1 | console.log(Object.prototype.toString.call(123)) //object Number] |
相关博客
-
2020-09-30
-
2020-03-21
-
2020-08-09
-
2020-06-04
-
2020-10-23