程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了这是好习惯吗:&&和||替换三元(在 javascript 或任何其他支持的语言中) 我的问题是:测试结果(测试算法如下)测试代码大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决这是好习惯吗:&&和||替换三元(在 javascript 或任何其他支持的语言中) 我的问题是:测试结果(测试算法如下)测试代码?

开发过程中遇到这是好习惯吗:&&和||替换三元(在 javascript 或任何其他支持的语言中) 我的问题是:测试结果(测试算法如下)测试代码的问题如何解决?下面主要结合日常开发的经验,给出你关于这是好习惯吗:&&和||替换三元(在 javascript 或任何其他支持的语言中) 我的问题是:测试结果(测试算法如下)测试代码的解决方法建议,希望对你解决这是好习惯吗:&&和||替换三元(在 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 吗?

解决方法

浏览器(chrome)测试结果

好的,所以测试不同的方法会给出有趣的结果:

1- 浏览器至少不是原子钟,每次抛出相同的算法时结果都不同。

2- 3 种方法每次都有差异,但它们的顺序永远不会相同。

测试结果(测试算法如下)

100 万次循环,每 1000 次 console.log :

这是好习惯吗:&&和||替换三元(在 javascript 或任何其他支持的语言中)
      
    我的问题是:测试结果(测试算法如下)测试代码


这是好习惯吗:&&和||替换三元(在 javascript 或任何其他支持的语言中)
      
    我的问题是:测试结果(测试算法如下)测试代码

似乎布尔方法较慢但

1 亿次循环,没有 console.log :

这是好习惯吗:&&和||替换三元(在 javascript 或任何其他支持的语言中)
      
    我的问题是:测试结果(测试算法如下)测试代码


这是好习惯吗:&&和||替换三元(在 javascript 或任何其他支持的语言中)
      
    我的问题是:测试结果(测试算法如下)测试代码


这是好习惯吗:&&和||替换三元(在 javascript 或任何其他支持的语言中)
      
    我的问题是:测试结果(测试算法如下)测试代码

在这里我们看到结果是不均匀的。 尽管 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,请注明来意。
标签:javascript