【发布时间】:2012-05-23 11:08:29
【问题描述】:
在使用 javascript 工作时,有人可以为我提供关于测试相等/不等式和类型强制的很好的参考或解释吗?
从我一直在阅读的内容中,我看到了使用 eqeq (==) 与 eqeqeq (===) 的两个思想原则,有些人认为您不应该使用 eqeq,并且始终使用 eqeqeq,因为它更安全使用。
我一直在玩一些基本示例,但我无法辨别差异或何时最好使用一个而不是另一个:
例如:这是我正在写的一些基本脚本。当我使用 eqeq 或 eqeqeq 进行测试时,我得到了相同的结果。我还没有看到一个例子,我会得到不同的结果(即使用 eqeq 返回 true,而 eqeqeq 返回 false)。
function write(message){
document.getElementById('message').innerHTML += message +'<br/>';
}
var tim = { name: "tim" };
var tim2 = { name: "tim" };
//objects are equal to themselves ( == vs ==== eqeq or eqeqeq)
write("tim eq tim: " + (tim == tim)); //returns true
//objects are only equal to themselves regardless of containing value got that
write("tim eq tim2: " + (tim === tim2)); //returns false
//access the primative type to test true or false
write("tim value eq tim2 value: " + (tim.name === tim2.name)); //returns true
//how does this differ in efficency over the eqeq operator? is one safer to use over the other?
//write("tim value eq tim2 value: " + (tim.name == tim2.name)); //also returns true
//testing primatives
write("apple eqeqeq apple: " + ("apple" === "apple")); //true
write("apple eqeqeq apple: " + ("apple" == "apple")); //true
谁能提供我能读到的解释或参考资料,以帮助澄清这一点。
干杯,
【问题讨论】:
标签: javascript