50 === 50: false. 50 == 50: true?
- 论坛
- 50 === 50: false. 50 == 50: true?
15 浏览
50 === 50: false. 50 == 50: true?
我完全不知所措。
我有一个函数..
Number.prototype.abs = function () { return this >= 0 ? this : this * -1; };
..它返回一个数的绝对值..
(50).abs(); // 50 (-50).abs(); // 50
..但比较结果不正确..
(50).abs() === 50; // False
..有时候。
(50).abs() == 50; // True (-50).abs() === 50; // True
问题在于,它在Chrome 12和Firefox 4中运行良好,但在IE 9、Safari 5和Opera 11中不行。
我没有发现代码中有任何问题,而且因为它在Chrome和Firefox中工作正常,所以这是与浏览器有关的问题,但我不知道是什么问题。
更新:与浏览器有关的差异在于严格模式的支持。我在严格模式下运行我的代码,这引入了一些改变,使得我的代码能够正常工作。之所以在某些浏览器中失败,是因为它们的严格模式不完整或缺失。
为什么会返回false?