详解JavaScript中typeof与instanceof用法
typeof
typeof
是用于判断一个变量的基本数据类型的关键字,无法判断对象的具体类型。
- 如果变量是字符串,返回 "string"。
- 如果变量是数字,返回 "number"。
- 如果变量是布尔型,返回 "boolean"。
- 如果变量是对象,返回 "object"。
- 如果变量是函数,返回 "function"。
- 如果变量是 undefined ,返回 "undefined"。
- 如果变量是 null,返回 "object"。
示例1:
console.log(typeof "abc"); // string
console.log(typeof 123); // number
console.log(typeof true); // boolean
console.log(typeof {}); // object
console.log(typeof function(){});// function
console.log(typeof undefined); // undefined
console.log(typeof null); // object
instanceof
instanceof
运算符用于判断某个实例对象是否属于某个构造函数的类型,可以判断对象的具体类型。
语法:object instanceof constructor
其中 object
是实例对象名称,constructor
是构造函数名称。
实例对象是由构造函数新建的对象,通过 instanceof
可以判断这个实例对象是否属于当前构造函数的类型,返回结果为 true
或 false
。
示例2:
function Person(name, age){
this.name = name;
this.age = age;
}
let p1 = new Person('Tom', 20);
console.log(p1 instanceof Person); // true
console.log(p1 instanceof Object); // true
console.log(p1 instanceof Array); // false
在上述示例中,p1
是使用 Person()
构造函数创建出来的对象, p1 instanceof Person
返回 true
。
而 p1
也是一个对象,同时通过 instanceof
运算符可以判断该对象是不是 Object()
的实例对象,结果为 true
。
最后, p1
明显不是数组,所以 p1 instanceof Array
的结果为 false
。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解JavaScript中typeof与instanceof用法 - Python技术站