关于数据检测类型的浅谈

来源:互联网 发布:网络服务提供商与数据 编辑:程序博客网 时间:2024/06/05 04:51
包含:typeof instanceof constuctor(?) isFunction isArray
typeof:
是一个运算符,针对一个操作数进行运算,并检测是哪个类型。但是有一定的局限性,针对对象类型数据,无法具体细化。比如说:数组,对象,正则等都会返回object.
instanceof :
仅限引用类型数据转化,无法检测基本数据类型的值,返回值是布尔型。
但是:1.不能检测以字面量方式出现的基本数据类型
2.会检测该属性的原型链,检测结果可能出问题
constructor:
constructor他是对象的一个属性,不是运算符,指向对象的构造函数。他的作用和instanceof想类似,但是对instanceof的缺陷进行了弥补。用".cobstructor ==="出来,返回值也是布尔型
object.prototype.tostring.call:
Object.prototype.toString比较常用于判断对象值属于哪种内置属性,返回值类型为字符串,返回的字符串格式为:"[object 数据类型]"。由于许多引用类型都重写了Object继承来的toString方法,所以通常使用call/apply方法,借用Object.prototype.toString函数来判断数据类型。
每一种数据类型所属的类的原型上都有toString方法,例如:Number.prototype、String.prototype、Array.prototype等等。除了Object上的toString之外,其他类原型上的toString都用于将数据值转换为字符串。
备注:基本包装类型
num string boolean 当他们调方法的时候就是基本包装类型了
Eg:num.toString String.split boolean.toString