关于js类型判断

  1. instanceof / typeof 类型判断
 var str = "test";
 str instanceof String 等同于 typeof str === 'string'

typeof 可以识别null以外的基础数据类型,如number,string,bool,无法识别array或object。
instanceof 只能用来判断两个对象是否属于实例关系, 而不能判断一个对象实例具体属于哪种类型。
例如

 var Cat = {
    name : "buble",
    sounde : function () {
        console.log("miao~");
    }
 }

 var aCat = Object.create(Cat);

aCat instanceof Cat 返回true,但外部传进来的未知对象,无法使用instanceof 判断类型

js用于判断数据类型的几种方式:
1.typeof

2.instanceof

3.constructor //对象的构造方法

var Dog = function () {
    this.name = "bug";
    this.sound = function () {
    alert("wangwang!");
}
}
var dog = new Dog();
dog.constructor === Dog  输出true

此处Dog.constructor === dog.constructor 输出false
因为Dog.constructor是指向Object的,及
dog.constructor === Dog,Dog.constructor === Object
一个dog要创建时,会去调用dog对象的构造方法 Dog,Dog的构造方法执行前回去调用Object的构造方法。

4.Object.prototype.toString.call()
``Object.prototype.toString.call("asdsf")

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容