JS中,如何检查对象是否为数组?
时间:2025-11-05 11:57:14 出处:IT科技阅读(143)

本文已经过原作者 Guest Contributor 授权翻译 。JS中
简介
在 JS 中使用数组是何检一种常见操作,有时在开发中,查对获得一个需要作为数组的象否变量,但是为数我们不确定它是否是数组,那要怎么去判断是JS中否为数组呢?
JS 中的非原始数据类型都是对象(函数具有自己的类型,但它们也是何检对象)。因此,查对仅使用typeof运算符来判断是象否不够的:
let result = { subject: Science, marks: 97 }; let numbers = [1, 2, 3, 4, 5]; console.log(typeof result); // Object console.log(typeof numbers); // Object在本文中,我们来研究如何在 JS 中检查给定变量或值是为数否为数组。
使用 Array.isArray() 方法
顾名思义,JS中此方法可用于识别给定参数是何检否为数组,它返回一个布尔值(true/false)和结果。查对
例如,象否使用以下变量,为数Array.isArray()方法可以正确判断是否为数组:
let result = { subject: "Science", marks: 97 }; // Object let numbers = [1, 2, 3, 4, 5]; // Array let name = "Mark"; // String let names = new Array("Jill", "Jane", "Jacqueline"); console.log(Array.isArray(result)); // false console.log(Array.isArray(numbers)); // true console.log(Array.isArray(name)); // false console.log(Array.isArray(names)); // true使用对象的构造函数属性
每个对象都有一个constructor 属性(除了使用object.create(null)创建的对象,这种情况不太可能出现)。免费源码下载我们可以直接将constructor 属性与 JS 的构造函数进行比较。因此,如果我们将它与数组构造函数进行比较,就会知道它是否是数组。
注意:构造函数是用来初始化对象的函数。如果使用new关键字创建了一个对象,那么使用的是构造函数。例如,在let myArray = new Array(1,2)中,使用的构造函数是Array()。
可以使用constructor 属性来确定变量是否是数组:
let result = { subject: "Science", marks: 97 }; let numbers = [1, 2, 3, 4, 5]; let name = "Mark"; let names = new Array("小智", "小力", "小吴"); console.log(result.constructor === Array); // false console.log(numbers.constructor === Array); // true console.log(name.constructor === Array); // false console.log(names.constructor === Array); // true使用 instanceof 运算符instanceof运算符检查是否在对象的原型链中找到构造函数。
像typeof运算符一样,它返回布尔值。要确定变量是否为数组,可以使用instanceof,如下所示:
let result = { subject: "Science", marks: 97 }; let numbers = [1, 2, 3, 4, 5]; let name = "Mark"; let names = new Array("小智", "小力", "小吴"); console.log(result instanceof Array); // false console.log(numbers instanceof Array); // true console.log(name instanceof Array); // false console.log(names instanceof Array); // true使用 Object.prototype.call() 方法
JS 中的所有对象均从主原型对象继承属性,该对象命名为Object.prototype。Object.prototype中存在toString()方法,免费信息发布网这是每个对象都有自己的toString()方法的原因, Object.prototype的 toString()方法显示对象的类型。
对象的call()方法执行一个函数,但将this 值更改为传入参数的对象,例如,它允许一个对象使用另一个对象的方法。
因此,我们可以使用Object.prototype.toString()来打印类型,然后使用call()来处理另一个对象,然后比较这个字符串值以确定它是否是一个数组。
let result = { subject: "Science", marks: 97 }; let numbers = [1, 2, 3, 4, 5]; let name = "Mark"; let names = new Array("小智", "小力", "小吴"); console.log(Object.prototype.toString.call(result)); // [object Object] console.log(Object.prototype.toString.call(numbers)); // [object Array] console.log(Object.prototype.toString.call(name)); // [object String] console.log(Object.prototype.toString.call(names)); // [object Array] console.log(Object.prototype.toString.call(result) === "[object Array]"); // false console.log(Object.prototype.toString.call(numbers) === "[object Array]"); // true console.log(Object.prototype.toString.call(name) === "[object Array]"); // false console.log(Object.prototype.toString.call(names) === "[object Array]"); // true我们不太可能使用这个方法,但是了解更多关于 JS 对象的知识是没有坏处的
总结
在本文中,我们研究了 JS 中确定对象是否是数组的几种方法。最简单的方法是Array.isArray()方法,亿华云以后大部小伙伴可能就是用它了。
但是,我们还可以利用instanceof运算符和其他对象属性来确定它是否为数组。
我是小智,我们下期见。
作者:Guest Contributor 译者:前端小智 来源:medium
原文:https://stackabuse.com/javascript-check-if-object-is-array/
本文转载自微信公众号「大迁世界」,可以通过以下二维码关注。转载本文请联系大迁世界公众号。

猜你喜欢
- 开启 Ubuntu 系统自动升级但是做为一个正常桌面用户,根本不会去关心有什么更新细节。而且这个提醒完全就是浪费时间,你肯定信任Ubuntu提供的升级补丁,对不对?所以,大部分情况你肯定会选择“现在安装”,对不对?所以,你需要做的就只是点一下升级按钮。现在,明白为什么需要自动系统升级了吧?开启自动系统升级意味着所有最新的更新都会自动下载并安装,并且没有请求确认。是不是很方便?开启Ubuntu自动升级可以发现,默认设置就是每日检查并立即提醒安全升级。改变 ‘当有安全升级’和‘当有其他升级’的选项为:下载并自动安装。闭对话框完成设定。这样每次Ubuntu检查更新后就会自动升级。Ubuntu取消自动更新命令 复制代码代码如下:APT::Periodic::Update-Package-Lists 0;APT::Periodic::Unattended-Upgrade 0; 将其修改
- 国美在南方市场的发展状况及前景展望(南方市场下国美电器的竞争优势与发展策略)
- 快门式3D(探索快门式3D技术的无限可能性)
- 威索尼克GR07耳机的音质和舒适度如何?(挑战耳朵的极致感官享受——GR07耳机的详细评测)
- 佳能800D性价比如何?(解析佳能800D相机的性能和价格特点,帮你判断是否物有所值)
- 探索戏命师的无限魅力(英雄联盟中的暗黑刺客,戏命师之华丽表演)
- 乐橙智能机器人的优势与应用(领先科技打造未来智能助手)
- 以苹果装苹果系统的方法(让您的苹果设备焕然一新)
- 使命召唤新人教程(逐步学习电脑基础知识,打造顶级游戏玩家)