// 判断对象类型的几种常见方法
// 1. 使用 typeof 操作符
// typeof 可以判断基本数据类型,但对于对象返回的都是 "object"
console.log(typeof {}); // "object"
console.log(typeof []); // "object" (数组也是对象)
console.log(typeof null); // "object" (这是一个历史遗留问题)
// 2. 使用 instanceof 操作符
// instanceof 可以判断对象是否是某个构造函数的实例
let arr = [];
console.log(arr instanceof Array); // true
console.log(arr instanceof Object); // true (因为数组也是对象)
// 3. 使用 Object.prototype.toString.call()
// 这是最可靠的方法,可以准确判断各种类型的对象
function getType(obj) {
return Object.prototype.toString.call(obj).slice(8, -1);
}
console.log(getType({})); // "Object"
console.log(getType([])); // "Array"
console.log(getType(null)); // "Null"
console.log(getType(undefined)); // "Undefined"
console.log(getType(123)); // "Number"
console.log(getType('hello')); // "String"
console.log(getType(true)); // "Boolean"
console.log(getType(function() {})); // "Function"
console.log(getType(new Date())); // "Date"
console.log(getType(/abc/)); // "RegExp"
// 解释说明:
// - typeof 对于基本类型(如 number, string, boolean)有效,但对对象和数组都返回 "object"。
// - instanceof 用于检查对象是否为某个构造函数的实例,适用于自定义对象或内置对象。
// - Object.prototype.toString.call() 是最全面的方法,可以准确判断所有类型的对象,包括内置对象和自定义对象。
上一篇:js 判断对象
下一篇:js 获取对象类型
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站