关键词:typeof 与 instanceof、typeof 作用、instanceof 作用
在JavaScript中,typeof和instanceof是两个用于检查变量类型的操作符,但它们具有不同的用途和区别。
typeof是一个一元操作符,用于确定给定变量的数据类型。它返回一个字符串,表示变量的数据类型。typeof可以用于任何变量,包括基本数据类型(如字符串、数字、布尔值)和引用数据类型(如对象、数组、函数等)。
例如:
1typeof 42; // "number"
2typeof "Hello"; // "string"
3typeof true; // "boolean"
4typeof undefined; // "undefined"
5typeof null; // "object"
6typeof [1, 2, 3]; // "object"
7typeof {name: "John", age: 30}; // "object"
8typeof function() {} // "function"
注意,typeof null返回的是”object”,这是一个历史遗留问题。
instanceof是一个二元操作符,用于检查对象是否属于指定的构造函数的实例。它返回一个布尔值,表示对象是否是特定构造函数的实例或其子类的实例。
例如:
1var arr = [1, 2, 3];
2arr instanceof Array; // true
3
4var obj = {name: "John", age: 30};
5obj instanceof Object; // true
6
7function Person(name) {
8this.name = name;
9}
10var john = new Person("John");
11john instanceof Person; // true
typeof用于确定变量的数据类型,而instanceof用于确定对象是否为某个构造函数的实例。虽然typeof可以检查基本数据类型和引用数据类型,但无法检查对象的具体类型。而instanceof可以在对象的继承链上进行检查,可以明确对象是否为某个类的实例或其子类的实例。
个人笔记记录 2021 ~ 2025