位置: 编程技术 - 正文

JavaScript中判断对象类型的几种方法总结(javascript中的判断语句)

编辑:rootadmin

我们知道,JavaScript中检测对象类型的运算符有:typeof、instanceof,还有对象的constructor属性:

1) typeof 运算符 typeof 是一元运算符,返回结果是一个说明运算数类型的字符串。如:"number","string","boolean","object","function","undefined"(可用于判断变量是否存在)。 但 typeof 的能力有限,其对于Date、RegExp类型返回的都是"object"。如:

typeof {}; // "object" typeof []; // "object" typeof new Date(); // "object"

所以它只在区别对象和原始类型的时候才有用。要区一种对象类型和另一种对象类型,必须使用其他的方法。如:instanceof 运算符或对象的 constructor 属。

2)instanceof 运算符。 instanceof 运算符要求其左边的运算数是一个对象,右边的运算数是对象类的名字或构造函数。如果 object 是 class 或构造函数的实例,则 instanceof 运算符返回 true。如果 object 不是指定类或函数的实例,或者 object 为 null,则返回 false。如:

[] instanceof Array; // true [] instanceof Object; // true [] instanceof RegExp; // false new Date instanceof Date; // true

所以,可以用instanceof运算符来判断对象是否为数组类型:

function isArray(arr){ return arr instanceof Array; }

3)constructor 属性。 JavaScript中,每个对象都有一个constructor属性,它引用了初始化该对象的构造函数,常用于判断未知对象的类型。如给定一个求知的值 通过typeof运算符来判断它是原始的值还是对象。如果是对象,就可以使用constructor属性来判断其类型。所以判断数组的函数也可以这样写:

function isArray(arr){ return typeof arr == "object" && arr.constructor == Array; }

很多情况下,我们可以使用instanceof运算符或对象的constructor属性来检测对象是否为数组。例如很多JavaScript框架就是使用这两种方法来判断对象是否为数组类型。 但是检测在跨框架(cross-frame)页面中的数组时,会失败。原因就是在不同框架(iframe)中创建的数组不会相互共享其prototype属性。例如:在Ajaxian上看到了一种精确的检测方法,跨原型链调用toString()方法:Object.prototype.toString()。可以解决上面的跨框架问题。 当Object.prototype.toString(o)执行后,会执行以下步骤: 1)获取对象o的class属性。 2)连接字符串:"[object "+结果(1)+"]" 3)返回 结果(2) 例如:

Object.prototype.toString.call([]); // 返回 "[object Array]"Object.prototype.toString.call(/reg/ig); // 返回 "[object RegExp]"

这样,我们就可以写一个健壮的判断对象是否为数组的函数:此种方法得到国外多个javaScript大师的认可,在即将发布的jQuery 1.3中将使用这种方法来检测数组。 prototype.js的一个维护者写了下面这个函数,用于获取对象的类型名

推荐整理分享JavaScript中判断对象类型的几种方法总结(javascript中的判断语句),希望有所帮助,仅作参考,欢迎阅读内容。

JavaScript中判断对象类型的几种方法总结(javascript中的判断语句)

文章相关热门搜索词:javascript 判断,javascript中判断数据类型,js判断数值,javascript中判断数据类型的几种方法,javascript中判断数据类型,javascript 判断,javascript中判断数据类型,javascript中判断数据类型的几种方法,内容如对您有帮助,希望把文章链接给更多的朋友!

JavaScript splice()方法详解 定义和用法splice()方法用于插入、删除或替换数组的元素。语法arrayObject.splice(index,howmany,element1,.....,elementX)参数描述index必需。规定从何处添加/删除元素

js hover 定时器(实例代码) $("#showComptr:not('.stlisttitle')").hover(function(){try{if($("#calendarPanel").is(":visible"))$(".playerlist").hide();else{clearTimeout(timMess);$(".playerlist").css("top",$(this).offset().top-$(".c

HTTP 错误的详细讲解 NotModified客户端有缓冲的文档并发出了一个条件性的请求(一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档)。服务器告诉客户,原来缓

标签: javascript中的判断语句

本文链接地址:https://www.jiuchutong.com/biancheng/373638.html 转载请保留说明!

上一篇:javascript中怎么做对象的类型判断(javascript中怎么创建一个数组)

下一篇:JavaScript splice()方法详解

  • 出口退税超期未缴税
  • 小规模纳税人附加税是几个点
  • 什么是办税员编号
  • 什么是税务代理人
  • 劳务什么情况下会多扣税
  • 退去年的教育费附加
  • 外购已税什么意思
  • 现金折扣是否可抵税
  • 材料成本会计的主要内容
  • 初期厂房监理费怎么做账?
  • 路桥年费税额抵扣账务处理怎么做?
  • 售后回租的实际操作流程
  • 别人给的发票一直不开
  • 异地施工需要缴纳什么税
  • 增值税专用发票的税率是多少啊
  • 土地使用税源编明细表怎么填
  • 成本差异的种类有哪些?
  • 或有资产是指
  • 财务会计制度备案操作流程
  • 房产税有哪些种类
  • rundll.exe是什么程序
  • php4位数的随机字符
  • nuxt支持vue3吗
  • ocxdll.exe - ocxdll是什么进程 有什么用
  • 股权转让合同怎么解除
  • nerosvc.exe - nerosvc是什么进程 有什么用
  • 产品成本核算方法的构成要素
  • replace.exe进程
  • phpfread
  • 未注销的坏账可以转出吗
  • 企业为员工提供服务要交增值税吗
  • 建筑企业取得发票难
  • 连接云服务器超时
  • 普通增值税发票会计科目怎么写?
  • 企业所得税申报表A类
  • 记账凭证和收付账簿区别
  • php preg_match
  • python中的查找函数
  • win11任务管理器卡死没响应
  • 什么是男人无力的行为
  • php怎么上传图片并保存到数据库
  • 发票取得取得售卡方公司开具的增值税专用发票
  • 酒店的销售费用和管理费用如何进行区分
  • 固定资产计提折旧的方法
  • dedecms建站
  • 员工餐费补助交个人所得税吗
  • 收到货款没开票的会计分录怎么做
  • mysql误删数据
  • 垃圾处理费申报怎么填
  • 已核准未登记名称我可以注册吗
  • 纳税人企业本月纳税额
  • 工程外经证预缴税款计税方法
  • 公司购买手表入什么科目
  • 银行的存单丢失了可以补办吗
  • 哪些原始凭证要盖章
  • 资产减值损失怎么计提
  • 哪些情形不需要办理变更登记
  • 签发空头支票的罚款
  • MySQL中使用____关键字来删除表格中的数据
  • 微软宣布将AI引入Office套件
  • win8.1内存占用过高
  • linux备份的文件bak如何恢复
  • win7系统鼠标指针形状介绍
  • cocos2dx游戏案例
  • 深入理解新发展理念心得体会3篇
  • cmd下在win上做vpn的命令分享
  • jquery触发点击操作
  • nodejs json数据库
  • vscode 远程调试jni
  • shell删除指定内容
  • pythonandroid开发
  • NGUI之UITexture
  • 基于JAVASCRIPT实现的可视化工具是
  • javascript面向对象吗
  • express常用api
  • 千元版的发票
  • 实名办税信息采集的身份证件
  • 税务局开蔬菜普票需要几个点
  • 江西省税务局公众号
  • 北京住房公积金最高限额
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设