js 判断对象或数组
在 JavaScript 中,可以使用 typeof 运算符来判断一个变量的数据类型。如果是对象或数组,typeof 运算符会返回 "object"。但是,这种方法并不能准确地判断一个变量是否为对象或数组,因为 null 也会被判断为 "object"。
为了更准确地判断一个变量是否为对象或数组,可以使用 Array.isArray() 方法来判断是否为数组,使用 Object.prototype.toString.call() 方法来判断是否为对象。
示例如下:
var obj = {name: "John", age: 30};
var arr = [1, 2, 3];
var str = "Hello";
var num = 123;
var bool = true;
var nul = null;
var und = undefined;
console.log("obj is object:", typeof obj === "object"); // true
console.log("arr is object:", typeof arr === "object"); // true
console.log("str is object:", typeof str === "object"); // false
console.log("num is object:", typeof num === "object"); // false
console.log("bool is object:", typeof bool === "object"); // false
console.log("nul is object:", typeof nul === "object"); // true
console.log("und is object:", typeof und === "undefined"); // true
console.log("obj is object:", Object.prototype.toString.call(obj) === "[object Object]"); // true
console.log("arr is array:", Array.isArray(arr)); // true
注意:在使用 Object.prototype.toString.call() 方法时,需要使用 call() 方法来改变 this 的指向,以避免被其他对象的 toString() 方法污染
原文地址: https://www.cveoy.top/t/topic/cjSu 著作权归作者所有。请勿转载和采集!