js判断变量是数组还是对象

本文介绍了三种判断变量是数组还是对象的方法:

  1. typeof无法区分数组和对象,都返回"object";
  2. instanceof可以区分,但需要先判断数组再判断对象;
  3. Array.isArray()专门用于判断数组。
    第三种方法最为简洁可靠,推荐使用。
    文章通过代码示例展示了每种方法的使用场景和局限性。

一、使用typeof

javascript 复制代码
let str = '';//文本
console.log(typeof str);//string
let num = 1;//数字
console.log(typeof num);//number
let bol = true;//布尔值
console.log(typeof bol);//boolean
let arr_obj=[];//数组
console.log(typeof arr_obj);//object
let obj_obj={};//对象
console.log(typeof obj_obj);//object

其中数组和对象,使用typeof,输出结果是object,不能判断是数组还是对象。

二、使用instanceof

javascript 复制代码
let arr = [];
console.log(arr instanceof Array);//true
console.log(arr instanceof Object);//true

let obj = {};
console.log(obj instanceof Array);//false
console.log(obj instanceof Object);//true

使用instanceof因先判断是否是数组,然后再判断是否对象

javascript 复制代码
function isArrOrObj(o) {
    if (o instanceof Array) {
        return '数组';
    } else if (o instanceof Object) {
        return '对象';
    } else {
        return '不能确定是数组或对象'
    }
}
let arr = [];
let obj = {};
console.log(isArrOrObj(arr));//数组
console.log(isArrOrObj(obj));//对象

三、使用Array.isArray()

javascript 复制代码
let arr = [];
let obj = {};
console.log(Array.isArray(arr));//true
console.log(Array.isArray(obj));//false
相关推荐
可可南木2 小时前
ICT 数字测试原理 3 --SAFETYGUARD 文件
开发语言·测试工具·pcb工艺
00后程序员张2 小时前
从零构建 gRPC 跨语言通信:C++ 服务端与
开发语言·c++
Komorebi_99992 小时前
Unocss
开发语言·前端
爱凤的小光3 小时前
图漾相机C++语言---Sample_V1(4.X.X版本)完整参考例子(待完善)
开发语言·c++·数码相机
goto_w3 小时前
前端实现复杂的Excel导出
前端·excel
Baklib梅梅4 小时前
2025文档管理软件推荐:效率、安全与协作全解析
前端·ruby on rails·前端框架·ruby
Derrick__14 小时前
Python常用三方模块——Pillow
开发语言·python·pillow
卷Java4 小时前
小程序前端功能更新说明
java·前端·spring boot·微信小程序·小程序·uni-app
FogLetter4 小时前
前端性能救星:虚拟列表原理与实现,让你的10万条数据流畅如丝!
前端·性能优化