📅  最后修改于: 2023-12-03 15:26:43.381000             🧑  作者: Mango
在 JavaScript 中,有多种数据类型,包括数字、字符串、布尔值、对象、数组等。在编写代码时,我们需要检查变量或值的数据类型,以确保它们符合预期的结果。
JS 中有多种检查数据类型的方法:
typeof
操作符可以返回一个值的数据类型,包括 "number"
、"string"
、"boolean"
、"undefined"
、"function"
和 "object"
等。
例如:
typeof 42; // "number"
typeof "hello world"; // "string"
typeof true; // "boolean"
typeof undefined; // "undefined"
typeof null; // "object"
typeof function() {}; // "function"
typeof {}; // "object"
typeof []; // "object"
需要注意的是,typeof null
会返回 "object"
,但实际上 null
是一个基本数据类型。
可以使用 Object.prototype.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(function() {}); // "[object Function]"
Object.prototype.toString.call({}); // "[object Object]"
Object.prototype.toString.call([]); // "[object Array]"
其中,Object.prototype.toString.call
方法会返回一个以 [object Xxx]
的形式表示类型的字符串。例如 [object Number]
表示数值类型。
instanceof
操作符可以用来检查一个对象是否是某个构造函数的实例。它可以用来判断一个对象是否为数组等类型。
例如:
var arr = [1, 2, 3];
arr instanceof Array; // true
Array.isArray
方法用来判断一个值是否为数组类型。
例如:
Array.isArray([1, 2, 3]); // true
Array.isArray({}); // false
以上是 JS 中常见的检查数据类型的方法。在编写代码时,根据实际情况选择合适的方法,可以更好地确保代码的正确性。