📅  最后修改于: 2023-12-03 15:16:13.759000             🧑  作者: Mango
在 JavaScript 中,查找变量的类型有多种方式。下面将介绍几个常用的方法。
typeof
运算符可以返回一个变量的类型字符串。例如:
typeof 42; // "number"
typeof "Hello, world!"; // "string"
typeof true; // "boolean"
typeof undefined; // "undefined"
typeof null; // "object" (注意这里的特例)
typeof {}; // "object"
typeof []; // "object"
typeof function(){}; // "function"
需要注意的是,typeof null
返回的是 "object"
。这是一个历史遗留问题,应该被视为一个 BUG。
instanceof
运算符可以判断一个对象是否属于某个类。例如:
var arr = [1, 2, 3];
arr instanceof Array; // true
arr instanceof Object; // true
arr instanceof Date; // false
需要注意的是,instanceof
只能用来判断对象和类的关系,不能用来判断基本类型的变量。例如:
var str = "Hello, world!";
str instanceof String; // false
每个 JavaScript 对象都有一个 toString
方法,可以返回这个对象的类型信息。例如:
Object.prototype.toString.call(42); // "[object Number]"
Object.prototype.toString.call("Hello, world!"); // "[object String]"
Object.prototype.toString.call(true); // "[object Boolean]"
Object.prototype.toString.call(undefined); // "[object Undefined]"
Object.prototype.toString.call(null); // "[object Null]"
Object.prototype.toString.call({}); // "[object Object]"
Object.prototype.toString.call([]); // "[object Array]"
Object.prototype.toString.call(function(){}); // "[object Function]"
需要注意的是,使用 toString
方法时要调用 call
方法,将需要检测类型的变量作为第一个参数传入。
以上介绍了 JavaScript 中查找变量类型的三种常用方式:typeof
运算符、instanceof
运算符和 Object.prototype.toString
方法。程序员可以根据实际情况选择使用哪种方式。