Javascript 哪个更好:x<;5或5>;x?
还警告“true”()Javascript 哪个更好:x<;5或5>;x?,javascript,Javascript,还警告“true”() 那么哪个更好,xx?它们都返回相同的结果,但在性能、浏览器兼容性等方面,哪一个更好?为什么呢?根据jsperf,第二个位置的性能稍高一些,但没有什么意义: 首次任职结果: var x = 0; alert(5 > x); alert(x < 5); 722609214 ±1.34% 最快的 来源:编写您自己的测试来找出答案,或者在我喜欢的xx。您从jsperf得出的结论是错误的。正确的结论是“两者的表现没有统计上的显著差异”。那到底为什么会有呢?如果真的有
那么哪个更好,
x<5
还是5>x
?它们都返回相同的结果,但在性能、浏览器兼容性等方面,哪一个更好?为什么呢?根据jsperf,第二个位置的性能稍高一些,但没有什么意义:
首次任职结果:
var x = 0;
alert(5 > x);
alert(x < 5);
722609214
±1.34%
最快的
来源:编写您自己的测试来找出答案,或者在我喜欢的
x<5
上进行尝试,以提高可读性。性能上的差异还不足以改变我的风格。我不知道有哪个浏览器不支持这两种功能。即使有5纳秒的性能差异,你也无法检测到。沉默的问题我不认为这有什么关系,这就像问哪个更好:x+1
或1+x
,结果是一样的,两者应该是普遍兼容的,性能上有任何差异(如果有)浏览器兼容性?当然有趣的是,它的性能更高,但即使我在测试警报(x<5)代码>和警报(5>x)代码>。不警报(x<5)代码>和警报(x>5)代码>…以下是测试修复:Chrome上的性能相同(性能优势为0.21%)@agconti看起来比您可能要编辑的第一个测试快5>x。您从jsperf得出的结论是错误的。正确的结论是“两者的表现没有统计上的显著差异”。那到底为什么会有呢?如果真的有什么?我认为这不应该是公认的答案。
alert(x < 5);
alert(5 > x);
<script type="text/javascript">
var x=1;
var pre = new Date().getTime();
for(var i=0;i<5000;i++){
console.log(x<5)
}
var cur = new Date().getTime();
console.info(cur-pre);
var pre = new Date().getTime();
for(var i=0;i<5000;i++){
console.log(5>x)
}
var cur = new Date().getTime();
console.info(cur-pre);
</script>
5000 true
660
5000 true
604