如何判断数据类型
2023-04-06 本文已影响0人
zhao_madman
- typeof:判断基本数据类型,返回字符串类型的值,包括 "undefined"、"boolean"、"number"、"string"、"bigint"、"symbol" 和 "object"示例代码:
typeof undefined; // "undefined"
typeof true; // "boolean"
typeof 123; // "number"
typeof "hello"; // "string"
typeof BigInt(123); // "bigint"
typeof Symbol("foo"); // "symbol"
typeof {}; // "object"
typeof []; // "object"
typeof null; // "object"
- instanceof:判断对象的类型,返回布尔值。
示例代码:
const arr = [1, 2, 3];
arr instanceof Array; // true
const obj = { name: "Tom" };
obj instanceof Object; // true
function Person(name) {
this.name = name;
}
const person = new Person("Jack");
person instanceof Person; // true
- Object.prototype.toString.call():判断对象的类型,返回字符串类型的值。
示例代码:
Object.prototype.toString.call(undefined); // "[object Undefined]"
Object.prototype.toString.call(null); // "[object Null]"
Object.prototype.toString.call(true); // "[object Boolean]"
Object.prototype.toString.call(123); // "[object Number]"
Object.prototype.toString.call("hello"); // "[object String]"
Object.prototype.toString.call(BigInt(123)); // "[object BigInt]"
Object.prototype.toString.call(Symbol("foo")); // "[object Symbol]"
Object.prototype.toString.call({}); // "[object Object]"
Object.prototype.toString.call([]); // "[object Array]"
- Array.isArray():判断是否为数组,返回布尔值。
示例代码:
Array.isArray([]); // true
Array.isArray({}); // false
- isNaN():判断是否为 NaN,返回布尔值。
示例代码:
isNaN(NaN); // true
isNaN(123); // false
isNaN("hello"); // true
- isFinite():判断是否为有限数,返回布尔值。
示例代码:
isFinite(123); // true
isFinite(Infinity); // false
isFinite(-Infinity); // false
isFinite("hello"); // false
- typeof 和 instanceof 的区别:
typeof 用于判断基本数据类型,而 instanceof 用于判断对象的类型。
typeof 返回字符串类型的值,而 instanceof 返回布尔值。
typeof 不能判断 null 和数组,而 instanceof 可以判断数组。
示例代码:
typeof null; // "object"
typeof []; // "object"
null instanceof Object; // false
[] instanceof Array; // true
- Object.prototype.toString.call() 和 typeof 的区别:
Object.prototype.toString.call() 可以判断 null 和数组,而 typeof 不能判断。
Object.prototype.toString.call() 返回字符串类型的值,而 typeof 返回字符串类型的值和 undefined。
示例代码:
Object.prototype.toString.call(null); // "[object Null]"
Object.prototype.toString.call([]); // "[object Array]"
typeof null; // "object"
typeof []; // "object"