📜  javascript 如何知道变量的类型 - Javascript (1)

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

Javascript 如何知道变量的类型

在Javascript中,有多种方法可以知道变量的类型。下面将介绍三种最常见的方法。

1. typeof 运算符

使用 typeof 运算符可以返回一个变量的类型,它通常被用来判断一个变量是否为 undefinedbooleannumberstringfunctionobject

console.log(typeof undefined); // 输出 "undefined"
console.log(typeof true); // 输出 "boolean"
console.log(typeof 42); // 输出 "number"
console.log(typeof "JavaScript"); // 输出 "string"
console.log(typeof function(){}); // 输出 "function"
console.log(typeof {}); // 输出 "object"

需要注意的是,对于数组和 null 来说, typeof 运算符的结果可能不如我们想象的那么直观。

console.log(typeof []); // 输出 "object"
console.log(typeof null); // 输出 "object"
2. instanceof 运算符

使用 instanceof 运算符可以判断一个变量的类型是否为某种构造函数的实例。

console.log([] instanceof Array); // 输出 "true"
console.log(new Date() instanceof Date); // 输出 "true"
console.log("JavaScript" instanceof String); // 输出 "false"

需要注意的是,使用 instanceof 运算符判断基本类型的值时,结果为 false

console.log(true instanceof Boolean); // 输出 "false"
console.log(42 instanceof Number); // 输出 "false"
console.log("JavaScript" instanceof String); // 输出 "false"
3. Object.prototype.toString 方法

使用 Object.prototype.toString 方法可以返回一个变量的类型字符串。

console.log(Object.prototype.toString.call(undefined)); // 输出 "[object Undefined]"
console.log(Object.prototype.toString.call(true)); // 输出 "[object Boolean]"
console.log(Object.prototype.toString.call(42)); // 输出 "[object Number]"
console.log(Object.prototype.toString.call("JavaScript")); // 输出 "[object String]"
console.log(Object.prototype.toString.call(function(){})); // 输出 "[object Function]"
console.log(Object.prototype.toString.call({})); // 输出 "[object Object]"

需要注意的是,使用 Object.prototype.toString 方法判断基本类型的值时,结果会包含构造函数名。

console.log(Object.prototype.toString.call(true)); // 输出 "[object Boolean]"
console.log(Object.prototype.toString.call(42)); // 输出 "[object Number]"
console.log(Object.prototype.toString.call("JavaScript")); // 输出 "[object String]"

以上就是Javascript知道变量类型的三种方法。在实际开发中,我们需要根据实际情况来选择合适的方法。