大佬教程收集整理的这篇文章主要介绍了这是好习惯吗:&&和||替换三元(在 javascript 或任何其他支持的语言中) 我的问题是:测试结果(测试算法如下)测试代码,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
考虑以下两个陈述
var result = value > 0 ? value : DefaultValue
// and
var result = value > 0 && value || DefaultValue
我经常使用第二个,因为它允许复杂的 if/else/if 情况, 但在这种特殊情况下,这两种方法具有完全相同的结果。
true && 5 || 10 // = 5
false && 5 || 10 // = 10
// a more complex case :
var value = condition1 && result1
|| condition2.1 && condition2.2 && result2
|| default
// which would translate in ternary :
var value = condition1
? result1
: condition2.1 && condition2.2
? result2
: default
正在使用 &&
和 ||
的良好做法还是有缺点?
并且这种布尔运算符的使用仅限于 JavaScript 吗?
好的,所以测试不同的方法会给出有趣的结果:
1- 浏览器至少不是原子钟,每次抛出相同的算法时结果都不同。
2- 3 种方法每次都有差异,但它们的顺序永远不会相同。
100 万次循环,每 1000 次 console.log :
似乎布尔方法较慢但
1 亿次循环,没有 console.log :
在这里我们看到结果是不均匀的。 尽管 if/else 明显落后
console.log("start")
const range = 100000000
let startTime = Date.now()
for (let x = 0; x < range; x++) {
if (x % 1000 === 0) {
true //console.log("tic")
} else {
false
}
}
console.log("time for if/else : " + (Date.now() - startTimE))
startTime = Date.now()
for (let x = 0; x < range; x++) {
x % 1000 === 0
? true //(console.log("tic"))
: false
}
console.log("time for ternary : " + (Date.now() - startTimE))
startTime = Date.now()
for (let x = 0; x < range; x++) {
x % 1000 === 0
&& true //(console.log("tic"))
|| false
}
console.log("time for Boolean : " + (Date.now() - startTimE))
这需要进一步测试(例如在 Node 环境中)
根据这些结果,我可以肯定地说 if/else 会更慢,除非有一个需要括号的函数调用。 然后在条件之间? : 和 Boolean && || ,好像打平了
你同意吗?
以上是大佬教程为你收集整理的这是好习惯吗:&&和||替换三元(在 javascript 或任何其他支持的语言中) 我的问题是:测试结果(测试算法如下)测试代码全部内容,希望文章能够帮你解决这是好习惯吗:&&和||替换三元(在 javascript 或任何其他支持的语言中) 我的问题是:测试结果(测试算法如下)测试代码所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。