如何判断数据类型

2023-04-06  本文已影响0人  zhao_madman
  1. 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"
  1. 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
  1. 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]"
  1. Array.isArray():判断是否为数组,返回布尔值。

示例代码:

Array.isArray([]); // true
Array.isArray({}); // false
  1. isNaN():判断是否为 NaN,返回布尔值。

示例代码:

isNaN(NaN); // true
isNaN(123); // false
isNaN("hello"); // true
  1. isFinite():判断是否为有限数,返回布尔值。

示例代码:

isFinite(123); // true
isFinite(Infinity); // false
isFinite(-Infinity); // false
isFinite("hello"); // false
  1. typeof 和 instanceof 的区别:

typeof 用于判断基本数据类型,而 instanceof 用于判断对象的类型。

typeof 返回字符串类型的值,而 instanceof 返回布尔值。

typeof 不能判断 null 和数组,而 instanceof 可以判断数组。

示例代码:

typeof null; // "object"
typeof []; // "object"

null instanceof Object; // false
[] instanceof Array; // true
  1. 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"
上一篇下一篇

猜你喜欢

热点阅读