判断数据类型instance of type of object.prototype.tostring 区别
Posted 蝈蝈flying
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了判断数据类型instance of type of object.prototype.tostring 区别相关的知识,希望对你有一定的参考价值。
typeof
typeof 是一个操作符,其右侧跟一个一元表达式,并返回这个表达式的数据类型。返回的结果用该类型的字符串(全小写字母)形式表示,包括以下 6 种:number、boolean、string、object、undefined、symbal 、function。typeof 对于对象,除了函数都会显示 object对于 null 来说,虽然它是基本类型,但是会显示 object,这是一个存在很久了的 Bug
instance of
instanceof 是用来判断 A 是否为 B 的实例,表达式为:A instanceof B,例:arr instanceof Array如果 A 是 B 的实例,则返回 true,否则返回 false。在这里需要特别注意的是:instanceof 检测的是原型。
Object.prototype.toString.call
toString 是 Object 原型对象上的方法,使用 call 来调用该方法会返回调用者的类型字符串,格式为 [object,xxx],xxx 是调用者的数据类型,包括:String、Number、Boolean、Undefined、Null、Function、Date、Array、RegExp、Error、htmlDocument 等,基本上,所有的数据类型都可以通过这个方法获取到。Object.prototype.toString()返回[object class], 我们可以通过它获取对象的类型信息eg:[object Array]toString() 获取某个类型的数据的类型valueof() 获取某个类型的数据的值ES6 Symbol.toPrimitiveSymbol.toPrimitive被调用时,会接受一个字符串参数,表示当前运算的模式,一个有三种模式。 该方法在转基本类型时调用优先级最高
Number:该场合需要转成数值 String:该场合需要转成字符串 Default:该场合可以转成数值,也可以转成字符串。
比较运算符
-
如果是对象,就通过 toPrimitive 转换对象
-
如果是字符串,就通过 unicode 字符索引来比较
new
-
新生成了一个对象
-
链接到原型
-
绑定 this
-
返回新对象
在调用 new 的过程中会发生以上四件事情,我们也可以试着来自己实现一个 new
以上是关于判断数据类型instance of type of object.prototype.tostring 区别的主要内容,如果未能解决你的问题,请参考以下文章
No enclosing instance of type XXX is accessible
No enclosing instance of type Stu is accessible
TypeError: super(type, obj): obj must be an instance or subtype of type