跳到主要内容

如何检查 JavaScript 中变量的类型?

参考答案:

在 JavaScript 中,有几种方法可以检查变量的类型。

  1. typeof 运算符:这是最常用的方法,它返回一个表示未定义、null、布尔值、数字、字符串、对象或函数的字符串。
let variable = "Hello, world!";
console.log(typeof variable);  // 输出 "string"

请注意,typeof 对于数组和 null 的处理可能会让人感到困惑。对于数组,它返回 "object",因为数组在 JavaScript 中实际上是对象。对于 null,它返回 "object",这是一个已知的错误,但出于兼容性考虑,JavaScript 并未修复。

  1. instanceof 运算符:这个运算符用于检测构造函数的 prototype 属性是否出现在对象的原型链中的任何位置。
let variable = new String("Hello, world!");
console.log(variable instanceof String);  // 输出 true
  1. Object.prototype.toString.call() 方法:这是一个更可靠的方法,它可以用来获取一个对象的准确类型,即使对象是通过 new 关键字创建的。
let variable = new String("Hello, world!");
console.log(Object.prototype.toString.call(variable));  // 输出 "[object String]"

在这个例子中,尽管 variable 是通过 new String() 创建的,但 Object.prototype.toString.call() 仍然能够准确地识别出它是一个字符串。

  1. constructor 属性:每个对象都有一个 constructor 属性,它指向创建该对象实例的构造函数。
let variable = "Hello, world!";
console.log(variable.constructor === String);  // 输出 true

然而,这个方法并不总是可靠的,因为 constructor 属性可以被修改。

以上就是在 JavaScript 中检查变量类型的一些常见方法。根据具体的使用场景和需求,你可以选择最适合你的方法。