📜  js 检查数据类型 - Javascript (1)

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

JS 检查数据类型 - Javascript

JavaScript 是一种弱类型语言,它不需要变量在声明时指定类型。而是动态地在运行时确定变量的类型。因为这一特性,我们需要经常检查变量的类型,以确保它们适合我们需要的目的。

数据类型

JavaScript 中有 7 种主要的数据类型:

  1. 数字 (Number):整数或浮点数。
  2. 字符串 (String):文本。
  3. 布尔值 (Boolean):true 或 false。
  4. 空 (null):没有值。
  5. 未定义 (undefined):没有定义。
  6. 对象 (Object):可包含数据和/或功能。
  7. 符号 (Symbol):唯一的标识符,从 ECMAScript 6 开始支持。
typeof 运算符

我们可以使用 typeof 运算符来检查给定值或变量的数据类型。typeof 运算符将返回一个字符串,指明值的数据类型。

typeof 42; // "number"
typeof "hello"; // "string"
typeof true; // "boolean"
typeof undefined; // "undefined"
typeof null; // "object"
typeof {}; // "object"

需要注意的是,typeof 运算符对于引用类型会返回 "object",因为对象是引用类型的基础。

instanceof 运算符

我们可以使用 instanceof 运算符来检查一个对象是否属于特定的类。instanceof 会检查对象的原型链,如果对象是特定类的实例,则返回 true,否则返回 false。

var today = new Date();
today instanceof Date; // true
today instanceof Object; // true
today instanceof Array; // false
constructor 属性

每个 JavaScript 对象都有一个 constructor 属性,指向用于创建该对象的函数。我们可以使用 constructor 属性检查对象的类型。

(42).constructor; // Number
"hello".constructor; // String
true.constructor; // Boolean
undefined.constructor; // undefined
null; // Uncaught TypeError: Cannot read property 'constructor' of null
[].constructor; // Array
({}).constructor; // Object

需要注意的是,由于 null 不是对象,访问它的 constructor 属性将会抛出 TypeError 异常。

总结

在 JavaScript 中,我们可以使用 typeof 运算符、instanceof 运算符和 constructor 属性来检查数据的类型。了解这些方法可以帮助我们编写更加健壮和可靠的代码。