// 获取对象类型的几种常见方法
// 1. 使用 typeof 操作符
// typeof 可以用来获取基本数据类型,但对于对象会返回 "object"
console.log(typeof null); // "object"
console.log(typeof {}); // "object"
console.log(typeof []); // "object" (在 JavaScript 中数组是对象)
// 2. 使用 Object.prototype.toString.call 方法
// 这是最可靠的方法来获取对象的具体类型
function getType(obj) {
return Object.prototype.toString.call(obj).slice(8, -1);
}
console.log(getType(null)); // "Null"
console.log(getType(undefined)); // "Undefined"
console.log(getType([])); // "Array"
console.log(getType({})); // "Object"
console.log(getType(123)); // "Number"
console.log(getType("hello")); // "String"
console.log(getType(true)); // "Boolean"
console.log(getType(function(){})); // "Function"
// 3. 使用 instanceof 操作符
// instanceof 用于检查对象是否是某个构造函数的实例
let arr = [];
console.log(arr instanceof Array); // true
console.log(arr instanceof Object); // true (因为数组也是对象)
// 注意:instanceof 对于基本数据类型和 null/undefined 不适用
console.log(123 instanceof Number); // false
console.log(null instanceof Object); // false
typeof
是一个简单但不完全可靠的操作符,对于大多数基本类型(如 number
, string
, boolean
)都能正确识别,但对于 null
和对象(包括数组、函数等)都会返回 "object"
。Object.prototype.toString.call()
是一种更精确的方法,可以区分不同的对象类型,如数组、日期、函数等。instanceof
用于检查对象是否是某个构造函数的实例,但它不能用于基本数据类型或 null
和 undefined
。上一篇:js 判断对象类型
下一篇:js 查看对象类型
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站