Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

js 判断对象类型

作者:_永恒灬莫言   发布日期:2025-02-17   浏览:123

// 判断对象类型的几种常见方法

// 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 获取对象类型

大家都在看

js 数组对象排序

js 数组删掉第一个值

js fill

js 数组复制

js 复制数组

js 数组拷贝

js 对象转数组

js 深拷贝数组

js 获取今天年月日

js jsonp

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站