- 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")