📜  如何检查 javascript 变量的数据类型 - Javascript (1)

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

如何检查 JavaScript 变量的数据类型

在 JavaScript 中,检查变量的数据类型是非常重要的。这可以帮助程序员避免意外地将错误的数据类型传递给函数,从而导致错误。

使用 typeof 操作符

JavaScript 提供了 typeof 操作符来检查变量的数据类型。它返回的值是一个表示数据类型的字符串。以下是 typeof 操作符支持的数据类型:

  • 'undefined' - 变量未定义
  • 'boolean' - 布尔值
  • 'number' - 数字
  • 'string' - 字符串
  • 'object' - 对象或 null
  • 'function' - 函数

以下是使用 typeof 操作符的示例:

let x;

console.log(typeof x);  // 输出 "undefined"

x = true;

console.log(typeof x);  // 输出 "boolean"

x = 42;

console.log(typeof x);  // 输出 "number"

x = "Hello world";

console.log(typeof x);  // 输出 "string"

x = {};

console.log(typeof x);  // 输出 "object"

x = null;

console.log(typeof x);  // 输出 "object"

function foo() {}

console.log(typeof foo);  // 输出 "function"
使用 instanceof 操作符

JavaScript 还提供了 instanceof 操作符来检查变量是否是特定类的实例。以下是使用 instanceof 操作符的示例:

class Person {}

const john = new Person();

console.log(john instanceof Person);  // 输出 true

console.log(john instanceof Object);  // 输出 true,因为 Person 类继承自 Object 类

console.log(john instanceof Array);  // 输出 false,因为 john 不是 Array 的实例
使用 Object.prototype.toString 方法

JavaScript 中的所有对象都有一个 toString 方法,它返回一个字符串,表示该对象的类型。可以使用 Object.prototype.toString 方法来获取一个变量的数据类型。以下是使用 Object.prototype.toString 方法的示例:

let x;

console.log(Object.prototype.toString.call(x));  // 输出 "[object Undefined]"

x = true;

console.log(Object.prototype.toString.call(x));  // 输出 "[object Boolean]"

x = 42;

console.log(Object.prototype.toString.call(x));  // 输出 "[object Number]"

x = "Hello world";

console.log(Object.prototype.toString.call(x));  // 输出 "[object String]"

x = {};

console.log(Object.prototype.toString.call(x));  // 输出 "[object Object]"

x = null;

console.log(Object.prototype.toString.call(x));  // 输出 "[object Null]"

function foo() {}

console.log(Object.prototype.toString.call(foo));  // 输出 "[object Function]"
结论

使用上述方法之一可以检查 JavaScript 变量的数据类型。typeof 操作符是最常用的方法,因为它返回一个简单的字符串。instanceof 操作符对于检查自定义类的实例非常有用。Object.prototype.toString 方法是最通用的,可以处理所有类型的变量。