【问题标题】:Querying a boolean variable versus comparing two strings in JS查询布尔变量与比较 JS 中的两个字符串
【发布时间】:2014-10-29 12:29:03
【问题描述】:

在 JavaScript 中,查询布尔变量的值或测试两个字符串是否相等在性能上是否存在显着差异。

例如,如果有的话,哪些更有效:

布尔示例:

var testBoolean = false;

if (testBoolean) {
   alert('false')
}

字符串示例:

var testString = 'false';

if (testString !== 'false') {
   alert('false')
}

谢谢!

【问题讨论】:

  • 布尔值更快,因为您可以进行较少的比较。您已经将测试设置为 false,但在第二种情况下,您需要进行字符串比较并将结果推送到 IF 条件中(这与从这里开始的情况 1 相同)
  • 请注意,2 个 sn-ps 并不等效。第一个将失败 if 条件。第二个将通过,alert().
  • 感谢乔纳森指出这一点,我现在已经编辑了问题。

标签: javascript string performance boolean


【解决方案1】:
var testString = 'false';

if (testString === false) {
   alert('I'm inside the if condition')
}

这永远不会进入 if 条件,因为 '===' 和 '!==' 运算符会检查值和类型,这与 '==' 和 '!=' 运算符不同。但我认为这不是你的问题。

布尔值更快,因为您可以进行更少的比较。您已经将测试设置为 false,但在第二种情况下,您需要进行字符串比较并将结果推送到 IF 条件中(这与从这里开始的情况 1 相同)

【讨论】:

  • 关于类型的第一点,两个值都是字符串。假设也使用'true',条件可以通过。
猜你喜欢
  • 2021-07-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-29
  • 2015-02-24
  • 2014-04-21
  • 1970-01-01
  • 2023-03-04
相关资源
最近更新 更多