前端面试——如何判断对象和数组

给你一个值,如何判断其是对象还是数组???

我们先给出数据

javascript 复制代码
var lists = [1,2,3,4,5]

var objs = {
    length:5
}

我们分别尝试如下五种方法

javascript 复制代码
console.log('(✘)使用length',lists.length,objs.length);
console.log('(✔)使用isArray',Array.isArray(lists),Array.isArray(objs));
console.log('(✔)使用constuctor',lists.constructor === Array,objs.constructor === Array);
console.log('(✔)使用instanceof',lists instanceof Array,objs instanceof Array);

输出结果如下

所以有三种常见方法判断: constructor 属性,Array.isArray 方法,instanceof关键字

这里面推荐使用:Array.isArray 方法,instanceof关键字

相关推荐
时寒的笔记6 分钟前
逆向入门05_yi恩网
javascript
李松桃6 分钟前
01HTML-CSS-入门知识点
前端·css
清水白石0087 分钟前
《Python 编程全景解析:透视性能瓶颈——从基础测速到线上热点诊断的高阶实战》
开发语言·python
广州华水科技7 分钟前
北斗GNSS变形监测系统是什么?主要有哪几种应用?
前端
2301_804215419 分钟前
模板元编程应用场景
开发语言·c++·算法
晴天1611 分钟前
【跨桌面应用开发】Neutralinojs快速入门指南
前端·javascript·electron·node.js
乐茵lin12 分钟前
大厂都在问:如何解决map的并发安全问题?三种方法让你对答如流
开发语言·go·编程·map·并发安全·底层源码·sync.map
实心儿儿13 分钟前
C++ —— 红黑树
java·开发语言·算法
松☆16 分钟前
C++ 控制台通讯录管理系统 —— 从零实现到完整解析(附可运行代码)
开发语言·网络·c++