在JavaScript中,有多种方法可以用于检测数据类型。以下是常用的数据类型检测方法: 1:typeof运算符:typeof运算符用于确定一个值的基本数据类型。它返回一个表示数据类型的字符串。
typeof 42; // 返回 "number"
typeof "Hello"; // 返回 "string"
typeof true; // 返回 "boolean"
typeof undefined; // 返回 "undefined"
typeof null; // 返回 "object"
typeof {}; // 返回 "object"
typeof []; // 返回 "object"
typeof function() {}; // 返回 "function"
2:instanceof运算符:instanceof运算符用于检测一个对象是否属于某个特定的构造函数。它返回一个布尔值。
const arr = [];
arr instanceof Array; // 返回 true
arr instanceof Object; // 返回 true,因为Array是Object的子类
3:Array.isArray()函数:Array.isArray()函数用于确定一个值是否为数组。它返回一个布尔值。
Array.isArray([]); // 返回 true
Array.isArray({}); // 返回 false
4:Object.prototype.toString.call()方法:这是一种通用的方法,可以用于检测任意值的数据类型。它返回一个表示数据类型的字符串。
Object.prototype.toString.call(42); // 返回 "[object Number]"
Object.prototype.toString.call("Hello"); // 返回 "[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({}); // 返回 "[object Object]"
Object.prototype.toString.call([]); // 返回 "[object Array]"
Object.prototype.toString.call(function() {}); // 返回 "[object Function]"
5:isNaN()函数:isNaN()函数用于检测一个值是否为NaN(非数字)。它返回一个布尔值。
isNaN(NaN); // 返回 true
isNaN(42); // 返回 false
isNaN("Hello"); // 返回 true