ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

javascript-这种类型的“对象”检查可以改进吗?

2019-12-08 18:34:42  阅读:275  来源: 互联网

标签:equals equality type-coercion javascript typeof


if (typeof a !== "object" && typeof b !== "object") {
    return a == b;
}
... // check pairwise equality of object a & b using `for in`

和…一样吗

if (typeof a !== "object") {
    return a == b;
}

是否有任何类型为b ===“ object”的b会改变语义?

我应该注意什么可怕的情况吗?具有非直觉布尔等式或不等式的对象和本机类型之间的比较?包括浏览器中的所有错误(我是说您是IE6!)

解决方法:

第二个检查与第一个检查不完全相同,不,仅仅是因为JavaScript的类型很弱,所以至少要考虑“ .toString()效果”以及其他检查.例如,这些将使第一次检查失败,但通过第二次检查:

var a = "[object Object]";
var b = {};

或者,更简单一些(显示您可能要考虑的情况……但这通过了两项检查):

var a = 0;
var b = "0";

一种解决方法是使用=== which is a strict comparison operator进行值和类型检查,您也将进行类型检查…但是我不完全确定这是您要执行的操作,因为当前检查明确是“不是对象” ”.

标签:equals,equality,type-coercion,javascript,typeof
来源: https://codeday.me/bug/20191208/2093454.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有