如何在Javascript中比较对象的值?
var newNum = new Number(10);
console.log(newNum); (It displays Number {})
var newPanelId = "panel" + newNum;
console.log("New Panel ID:" + newPanelId); (It displays panel10. Perfect)
但是当我比较时
if (newNum === 10)
{
console.log("Print It");
}
如果是,则不执行上述操作。为什么呢?
答案 0 :(得分:2)
new
关键字实际上创建了一个数字类型对象,其中数字10不是数字类型对象。 ===
运算符检查类型和值是否因此您的条件每次都是假的。添加+
前缀会使其成为一个数字,以便您进行比较。
答案 1 :(得分:2)
您已使用条件newNum === "10"
。 三元组 =
表示它也会检查类型,并且当您在10
周围使用引号时,它正在查找字符串,因此它永远不会计算为true
相反,执行newNum == 10
(或者,作为 double =
仅检查值,不类型,newNum == "10"
将也工作):
var newNum = new Number(10);
console.log(newNum);
var newPanelId = "panel" + newNum;
console.log("New Panel ID:" + newPanelId);
if (newNum == 10) {
console.log("Print It");
}

答案 2 :(得分:1)