gpt4 book ai didi

javascript - 可以改进这种带有 "object"的类型检查吗?

转载 作者:行者123 更新时间:2023-11-29 10:53:36 25 4
gpt4 key购买 nike

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 with typeof b === "object" 会改变语义?

有什么我应该注意的极端情况吗? objectnative type 之间的比较具有非直观的 bool 相等性或不相等性?包括浏览器中的任何错误(我是说你是 IE6!)

最佳答案

第二次检查与第一次检查完全不一样,不,只是因为 JavaScript 是弱类型的,所以至少要考虑“.toString() 效果“,以及其他人。例如,这些将在第一次检查中失败,但在第二次检查中通过:

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

或者,更简单一点(展示一个您可能想要考虑的案例……但这通过了两项检查):

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

一个解决方法是使用 === which is a strict comparison operator 进行值类型检查,您也可以进行类型检查...但我完全不确定这就是您所追求的,因为当前检查明确地“不是对象”。

关于javascript - 可以改进这种带有 "object"的类型检查吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5034394/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com