javascript,奇怪的比较运算符
可能重复:javascript,奇怪的比较运算符,javascript,Javascript,可能重复: 我在一些chrome扩展的源代码中遇到了“!==”奇怪的比较运算符。代码段: function closedTab(id) { if (openedTabs[id] !== undefined) { openedTabs[id].time = timeNow(0); closedTabs.unshift(openedTabs[id]); } } 这个操作符不是只使用一次,所以应该有一些含义 “!==”是否来自于某种JavaScript魔术?或者
我在一些chrome扩展的源代码中遇到了“!==”奇怪的比较运算符。代码段:
function closedTab(id) {
if (openedTabs[id] !== undefined) {
openedTabs[id].time = timeNow(0);
closedTabs.unshift(openedTabs[id]);
}
}
这个操作符不是只使用一次,所以应该有一些含义
“!==”是否来自于某种JavaScript魔术?或者它仅仅等同于通常的“!=”?
谢谢区别在于
==代码>在比较之前不尝试将其操作数转换为相同类型。与==
和==
相同
看到这个问题:区别在于==代码>在比较之前不尝试将其操作数转换为相同类型。与==
和==
相同
查看此问题:这称为严格比较运算符,它不仅检查值,还检查类型。这称为严格比较运算符,它不仅检查值,还检查类型。!==是not标识比较运算符
!=将强制这两种类型匹配
!==不会强制这两种类型
举几个例子:
3 == "3" // true - the operands are coerced to the same type, then compared and they match
3 === "3" // false - the operands are not coerced to the same type, so do not match
3 != "3" // false
3 !== "3" // true
!==是not标识比较运算符
!=将强制这两种类型匹配
!==不会强制这两种类型
举几个例子:
3 == "3" // true - the operands are coerced to the same type, then compared and they match
3 === "3" // false - the operands are not coerced to the same type, so do not match
3 != "3" // false
3 !== "3" // true
差异来自于值的类型不同时发生的情况
==
运算符(及其近亲===
)检查值和类型是否相等<代码>=另一方面,code>和==
尝试在检查相等之前强制值相同
例如:
if(5 === "5") // evaluates to false
if(5 == "5") // evaluates to true
if('foobar' == true) // true
if('foobar' === true) // false
同样的概念也扩展到了=代码>和==代码>差异来自不同类型的值时发生的情况
==
运算符(及其近亲===
)检查值和类型是否相等<代码>=另一方面,code>和==
尝试在检查相等之前强制值相同
例如:
if(5 === "5") // evaluates to false
if(5 == "5") // evaluates to true
if('foobar' == true) // true
if('foobar' === true) // false
同样的概念也扩展到了=代码>和==代码>这是一个相同的比较运算符。它比较值和类型。例如:
if(5 === "5") // evaluates to false
if(5 == "5") // evaluates to true
if('foobar' == true) // true
if('foobar' === true) // false
这是一个相同的比较运算符。它比较值和类型。例如:
if(5 === "5") // evaluates to false
if(5 == "5") // evaluates to true
if('foobar' == true) // true
if('foobar' === true) // false
见