IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> js中如何判断一个对象为数组 -> 正文阅读

[JavaScript知识库]js中如何判断一个对象为数组

如何判断一个对象为数组?

1.可以使用typeof操作符判断当他遇到null类型和Array对象时都会判断为object

console.log(typeof null); // object

console.log(typeof [1,2,3]); // object

console.log(typeof '这是一段字符串'); // string

console.log(typeof 1); // number

console.log(typeof a); // undefined

console.log(typeof undefined); // undefined

console.log(typeof function(){
            return  1;
        });// function

2.验证原型对象(Array.prototype.isPrototypeOf(obj))

利用isPrototypeOf()方法,判定Array是不是在obj的原型链中,如果是,返回true,否则返回false。

console.log(Array.prototype.isPrototypeOf([1,2,3]));//是数组,返回true
console.log(Array.prototype.isPrototypeOf({}));//是function类型,返回false

3.构造函数来验证(obj.instanceof Array)

typeof和instanceof的区别在于返回的数据的基本类型,一个是返回布尔值。

当instanceof判断的是的数组是返回true,否则是false。

console.log('一段字符串' instanceof Arry);//false
console.log([1,2,3] instanceof Arry);//true

上面的方法也可以使用对象的constructor属性,因为在js中每个对象都有constructor属性,这种的也常用判断未知对象属性

var obj1 = [1,2,3];
var obj2 = {};
console.log(obj1.constructor == Array); //true
console.log(obj2.constructor == Array); //false

4.根据对象的class属性(类属性),跨原型链调用toString()方法。(object.prototype.toString)

因为在js中一个对象一旦创建,在内部会携带创建对象的类名,一旦创建就不能被修改。而js中提供了,调用对象原型中的toString方法,object.prototype.toString.call()obj;因为数组原型中继承的toString()方法被重写了,为了能够调用正确的toString()版本,也就是最原始的版本。可以使用Function.call()的方法,其中的call可以理解成,相当于obj去借用这个Object.prototype.toString();例如:

console.log(Object.prototype.toString.call([1,2,3]) === "[object Array]");//true
console.log(Object.prototype.toString.call({}) === "[object Array]");//false

5.Array.isArray()方法。(es5新增)

ECMAScript5将Array.isArray()正式引入JavaScript,目的就是准确的检测一个值是否为数组。

console.log(Array.isArray([]));//true
console.log(Array.isArray({}));//false
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-11-22 12:15:09  更:2021-11-22 12:16:31 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/20 21:42:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码