当前位置: 首页 > news >正文

js 判断确切判断Array和Object

 js的数组其实是特殊的对象。

这就导致:

  typeof [1,2,3] === 'object'

  [1,2,3] instanceof Object  和 [1,2,3] instanceof Array 都是true

但是注意 [1,2,3]  !=  {'0':1,'1':2,'2':3}, [1,2,3] != [1,2,3] 。因为对象之间的 == 与 ===是一样的。

那么要确切判断的话,经过我试验,可以使用以下规则:

 [].__proto__ === Array.prototype

{}.__proto__ === Object.prototype

 

附带2个对象深拷贝方法。工程里的copy1和我写的copy2.当然copy2 在规模大点的时候,效率比copy1要高。

function copy1(obj){
     var o;
    if (obj == null || obj == undefined || typeof obj != 'object'){
        o = obj;
    }
    else{
        var s = JSON.stringify(obj);
        o = JSON.parse(s);
    }
    return o;
}
function copy2(obj){
    var re;
    if(obj.__proto__ === Object.prototype ){
        re = {};
        for(var key in obj){
            re[key] = copy2(obj[key]);
        }
    }else if(obj.__proto__ === Array.prototype){
        re = Array(obj.length);
        for(var i = 0;i < re.length;i++){
            re[i] = obj[i];
        }
    
    }else{
        re = obj;
    }
    return re;
}

 

转载于:https://www.cnblogs.com/pixs-union/p/7373228.html

相关文章:

  • s7day1学习记录
  • Eclipse配置文件描述
  • C#6.0VISUALSTUDIO 2015 C#入门经典 第7版pdf
  • Navicat Premium连接各种数据库
  • 8.19-星期五
  • 二叉树转换成森林amp;森林变成二叉树
  • JS学习一
  • Python 2 和 Python 3的继承
  • hdu 6153 A Secret(KMP)
  • Tomcat入门
  • 表单,正则
  • 第4阶段——制作根文件系统之分析init进程(2)
  • 求点之间是否联通
  • php数组和正则表达式的替换拆分匹配所有
  • OC与Swift混编
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • 【个人向】《HTTP图解》阅后小结
  • 03Go 类型总结
  • Apache Zeppelin在Apache Trafodion上的可视化
  • iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
  • Java新版本的开发已正式进入轨道,版本号18.3
  • Js基础知识(四) - js运行原理与机制
  • MySQL的数据类型
  • quasar-framework cnodejs社区
  • React组件设计模式(一)
  • SpringBoot几种定时任务的实现方式
  • Vue.js-Day01
  • Web设计流程优化:网页效果图设计新思路
  • 工作手记之html2canvas使用概述
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 欢迎参加第二届中国游戏开发者大会
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 想使用 MongoDB ,你应该了解这8个方面!
  • 小程序button引导用户授权
  • 一天一个设计模式之JS实现——适配器模式
  • 【运维趟坑回忆录】vpc迁移 - 吃螃蟹之路
  • Hibernate主键生成策略及选择
  • postgresql行列转换函数
  • TPG领衔财团投资轻奢珠宝品牌APM Monaco
  • ​Java并发新构件之Exchanger
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • (13):Silverlight 2 数据与通信之WebRequest
  • (3)选择元素——(14)接触DOM元素(Accessing DOM elements)
  • (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切
  • (delphi11最新学习资料) Object Pascal 学习笔记---第2章第五节(日期和时间)
  • (仿QQ聊天消息列表加载)wp7 listbox 列表项逐一加载的一种实现方式,以及加入渐显动画...
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (附源码)计算机毕业设计SSM智慧停车系统
  • (附源码)流浪动物保护平台的设计与实现 毕业设计 161154
  • (五)IO流之ByteArrayInput/OutputStream
  • (一)插入排序
  • (一)认识微服务
  • .NET Core实战项目之CMS 第一章 入门篇-开篇及总体规划
  • .net 微服务 服务保护 自动重试 Polly