判断一个变量是数组还是对象

永磁同步电机矢量控制——电流内环前馈解耦策略 在采用永磁同步电机矢量控制时,ud和uq的指令值存在耦合项。需要对其进行解耦,目前,常用的解耦设计方法有前馈解耦、偏差解耦以及内模控制,本文主要分享电流内环前馈解耦控制策略。 阅读详情
很多人看到标题就会想到使用typeof运算符,但是实际上有些它判断不了
var a = [1,2,3]
console.log(typeof a)  // "object"

//总结: typeof运算符并不能直接判断一个变量是对象还是数组,
//实际上,typeof运算符在判断基本数据类型可以,但是引用数据类型就吃力了

判断一个变量是否为数组和对象的方法
  1. instanceof运算符
//基本用法
var a = [1,2,3]
console.log(a instanceof Array); // true
console.log(a instanceof Object); // true

var b = {
    name:'老王',
    age:18,
}
console.log(a instanceof Array); // false
console.log(a instanceof Object); // true

//封装方法
function getDataType(o) {
    if(o instanceof Array){
        return 'Array'
    }else if(o instanceof Object){
        return 'Object'
    }else{
        return 'param is not object type'
    }
}

//有一些缺点

2.判断构造函数

var a = [1,2,3]
console.log(a.__proto__.constructor === Array)  //true
console.log(a.__proto__.constructor === Object)  //false

<!--分装方法-->
function getDataType(o) {
    //获取构造函数
    var constructor = o.__proto__.constructor || o.constructor
    if(constructor === Array){
        return 'Array'
    }else if(constructor === Object){
        return 'Object'
    }else{
        return 'param is not object type'
    }
}

<!--缺点-->
    早期的ie浏览器不支持__proto__ 这个属性

3.toString()函数

var a = [1, 2, 3];
var b = {name: 'kingx'};

console.log(Object.prototype.toString.call(a)); // [object Array]
console.log(Object.prototype.toString.call(b)); // [object Object]

<!--其实任何类型的变量在调用toString函数时候,都会返回不同的结果-->
Object.prototype.toString.call(1);  // [object Number]
Object.prototype.toString.call('kingx'); // [object String]
var c;
Object.prototype.toString.call(c);  // [object Undefined]

// 判断变量是数组还是对象
function getDataType(o) {
   var result = Object.prototype.toString.call(o);
   if (result === '[object Array]') {
       return 'Array';
   } else if (result === '[object Object]') {
       return 'Object';
   } else {
       return 'param is no object type';
   }
}

4.Array.isArray()函数

  • 在JavaScript 1.8.5 版本中增加的静态函数
  • 注意:只能判断出是否为数组,并不能确定是否为对象
// 下面的函数调用都返回“true”
Array.isArray([]);
Array.isArray([1]);
Array.isArray(new Array());
// 鲜为人知的事实:其实 Array.prototype 也是一个数组。
Array.isArray(Array.prototype);
 
// 下面的函数调用都返回“false”
Array.isArray();
Array.isArray({});
Array.isArray(null);
Array.isArray(undefined);
Array.isArray(17);
Array.isArray('Array');
Array.isArray(true);
UCIE Specification详解(二) UCIe架构概述。 阅读详情

相关推荐

告别龟速下载!保姆级教程:用离线包5分钟搞定Arduino IDE的STM32开发环境(附最新库文件)

本文提供了一套完整的Arduino IDE离线配置方案,帮助开发者5分钟快速搭建STM32开发环境。通过详细的板支持包安装指南、文件校验方法和常见问题解决方案,彻底解决GitHub下载慢的问题,提升开发效率。

weixin_26802933的博客 363

判断变量是对象还是数组

怎么样判断一个变量是数组还是对象,首先是通过length去判断,一般情况下对象没有length属性值,其值为undefiend,而数组的length值为number类型 ,但是这种方法非常不实用,一但对象的属性存在length之后(比如类数组),其值也为number,则该方法失效。所以不建议使用。下面是我找到的几种方法: 1. typeOf我们可以使用typeOf来判断变量,判断字符串得到string,判断数字和NaN得到number,判断函数得到function。但是判断数组...

m0_55695312的博客 474

工业质检实战:如何用MVTec AD数据集训练你的第一个无监督异常检测模型

本文提供了一份基于MVTec AD数据集的工业质检实战指南,详细介绍了如何从零开始训练一个无监督异常检测模型。内容涵盖数据预处理、模型架构选型(如CAE、GAN与特征字典方法)、特征提取、损失函数设计以及关键的阈值确定与后处理流程,旨在帮助工程师快速掌握将AI技术落地于实际产线质检的核心步骤与调参经验。

weixin_29182481的博客 459

判断一个对象是否是数组?

一、判断一个对象是否是数组? var obj1={x:1}, obj2=[1,2], obj3=new Date(); 1.判断当前对象的原型对象是否是数组的原型对象 //1.使用__proto__获得对象的原型对象 obj1.__proto__==Array.prototype;//false obj2.__proto__==Array.prototype;//true obj3.__prot...

weixin_42334281的博客 643

SimMechanics二连杆仿真避坑指南:Solid模块坐标系设置与Rigid Transform常见错误

本文详细解析了SimMechanics中二连杆平面臂仿真的常见问题,重点探讨Solid模块坐标系设置与Rigid Transform模块的配置陷阱。通过实战案例和MATLAB代码示例,揭示多体系统仿真中的关键错误点,包括坐标系方向定义、参数匹配、端口连接规则等,帮助工程师有效规避仿真风险,提升建模效率。

weixin_29309213的博客 411

幸狐RV1106开发板实战:5分钟搞定Yolo8模型部署(附避坑指南)

本文详细介绍了在幸狐RV1106开发板上快速部署YOLOv8模型的实战流程。通过RKNN-Toolkit2工具链,将ONNX模型转换为RV1106 NPU专用的RKNN格式,并完成交叉编译与上板运行。文章重点分享了环境搭建、模型转换的关键步骤以及常见的避坑指南,帮助开发者高效实现边缘AI目标检测应用。

weixin_28677451的博客 912

js判断一个对象为数组的方法

数组对象js的数组是无类型的:数组元素可以是任意类型,并且同一个数组中的不同元素也可能有不同的类型。数组的元素可以是对象或其他数组,这样就可以创建复杂的数据结构。 通常我们可以用一元运算符typeof来判断js的数据类型,但是对于数组这样一个特殊的对象却只能返回"object" typeof [1,2,3] "object" typeof 100 "number" typeof false "boo

音韵者天 4395

基于Qt实现的轻量级CAD画图软件

基于Qt开发的轻量级CAD应用程序

weixin_44954230的博客 5658

判断是否是数组

1. instanceof方法    function isArray(a) {         return a instanceof Array;     }     function t() {         var a = [];         console.log(isArray(arguments), isArray(a))     }     t();

步步错的博客 338

STM32F407步进电机控制及DM542驱动器使用

基于DM542驱动器的步进电机简单控制

qq_43868701的博客 1万+

2026年海能达嵌入式岗位面试题集(含参考答案)

本文总结了嵌入式系统开发中的常见面试题,涵盖项目经验、外设接口、存储系统、编程基础、操作系统等核心模块。主要内容包括:1)项目核心经历的硬件/软件架构及问题解决思路;2)SPI、I2C等接口协议的时序特点与应用要点;3)NAND Flash存储管理中的ECC校验原理和文件系统对接方案;4)USB设备枚举流程等关键知识点。这些题目针对嵌入式岗位的技术考察重点,既包含底层硬件接口细节,也涉及系统级设计与优化策略,全面考察开发者的嵌入式系统能力。

Open 360

判断数组的几种方式

一、前言 如何判断一个对象或一个值是否是一个数组,在面试或工作中我们常常会遇到这个问题,既然出现频率高,想着还是做个整理,那么本文主要基于几种判断方式,以及方式判断的原理,是否存在问题展开讨论。 二、判断对象是否是数组的几种方式 1.通过instanceof判断 instanceof运算符用于检验构造函数的prototype属性是否出现在对象的原型链中的任何位置,返回一个布尔值。 let a = []; a instanceof Array; //true let b = {}; b instanceof

zyq_1020的博客 2746

17|CI/CD 集成与质量门禁:让精准测试进入发布流水线

本文讲解精准测试如何接入 CI/CD 流水线,并通过质量门禁辅助发布决策。测试开发工程师。Java 后端开发工程师。质量平台 / DevOps 平台建设者。想了解精准测试落地方法的技术负责人。

专注 AI 精准测试平台实战落地,分享从代码 Diff 到回归决策的完整工程闭环。主张“先建数据链路,再上 AI 智能”,让测试从“靠经验”走向“基于风险”。 66

判断一个变量是数组或者对象得方法有哪些?

isArray() 方法用于判断一个对象是否为数组。如果对象是数组返回 true,否则返回 false。// true通过原型链判断是否具有和数组同一原型链的顶端。// true用于检测构造函数的 prototype 属性是否出现在某个实例对象的原型链上// true所有原始数据类型都能通过该方法判断,具有通用性。

qq_31930427的博客 1365

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

JavaScript判断一个变量是对象还是数组

JavaScript判断一个变量是对象还是数组 typeof都返回object 在JavaScript中所有数据类型严格意义上都是对象,但实际使用中我们还是有类型之分,如果要判断一个变量是数组还是对象使用typeof搞不定,因为它全都返回object 1 2 3 4 5 6 var o = { 'name':'lee' }; v

likeuzi的博客 2万+

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

c判断char数组是否为空_JavaScript中如何判断一个变量是否是对象、数组

JavaScript中如何判断一个变量是否是对象、数组在工作中难免会遇到判断一个变量是否是对象、数组的问题,今天我来总结一下1. 基础知识1.1 JavaScript的变量类型如上图所示,到目前为止JavaScript总共有8中类型,这8中类型分为基本类型和引用类型两大部分。1.2 使用typeof运算符typeof 操作符返回一个字符串,表示未经计算的操作数的类型。typeof返回的所有结果入...

weixin_39732866的博客 518

js中如何判断一个变量是数组还是对象

在javascript中当使用typeof方法来判断[]和{}时,返回值都是’object’,那么如何来判断一个变量是数组还是对象呢?这里记录两种方法: 利用toString()方法 Object.prototype.toString.call({}) // [object Object] Object.prototype.toString.call([]) // [object Arra...

astonishqft的博客 1万+

js判断一个变量是否为数组或对象的方法整理,各种判断方法对比

是否为数组的判断方法 1.Array.isArray() (推荐) 通过es6的Array.isArray()实现 let arr = [] console.log(Array.isArray(arr)) //true 2.Object.prototype.toString.call (推荐) let arr = [] console.log(Object.prototype.toString.call(arr)) //[object Array] console.log(Object.pr

recallMei的博客 977

判断一个变量是数组还是对象?

判断一个变量是数组还是对象?

Grand.的博客 209

js判断变量为一个数组或对象

判断一个变量一个对象: 1.原型判断: 这个方法也可以用到下面的判断数组中, 所以要是懒得记的话, 就记住这一种方法就好了 Object.prototype.toString.call(data) === ‘[object Array]’; 2.es5, 经常用的方法, 简单 Array.isArray(data) 注: 不可以用typeof 和 instanceof, 原因是数组检查是否是obj...

weixin_42538281的博客 258

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

引用原网址 http://www.111cn.net/wy/js-ajax/49504.htm typeof都返回object 在JavaScript中所有数据类型严格意义上都是对象,但实际使用中我们还是有类型之分,如果要判断一个变量是数组还是对象使用typeof搞不定,因为它全都返回object 代码如下 1 var o = { '...

weixin_34174422的博客 1093
上一篇: webpack
下一篇: vue中多语言配置(繁体,简体,英文)
luofei_create
博客等级 码龄6年 3万+粉丝 22原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值