📜  javascript 查找变量的类型 - Javascript (1)

📅  最后修改于: 2023-12-03 15:16:13.759000             🧑  作者: Mango

JavaScript 查找变量的类型

在 JavaScript 中,查找变量的类型有多种方式。下面将介绍几个常用的方法。

typeof 运算符

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 运算符

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
Object.prototype.toString 方法

每个 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 方法。程序员可以根据实际情况选择使用哪种方式。