【问题标题】:Any advantage to using variable with tilde in javascript vs. -1? [closed]在 javascript 与 -1 中使用带波浪号的变量有什么好处? [关闭]
【发布时间】:2013-05-27 18:19:49
【问题描述】:

除了轻微的性能提升之外,使用 !~x 作为 true 与检查是否 ~-1 相比是否有优势?

【问题讨论】:

  • if (~someString.indexOf(someOtherString)){...} 很好,但并不总是很清楚。
  • ~1 is -2, ~~X 可用于在X 上做一个“地板”(X 为正)
  • 你说的“检查是否~-1”是什么意思?你的问题是~x 还是x != -1

标签: javascript tilde


【解决方案1】:

大数字可能会有所不同。由于您仅限于 32 位范围,请考虑以下事项。

var x = Math.pow(2,32)-1; // 4294967295

console.log(~x); // 0

所以在这里你会得到一个0 结果,它给你的布尔转换结果与你预期的相反。

【讨论】:

  • 仍然不确定这是否回答了这个问题,因为我不确定这个问题到底是什么。 :(
  • @Shmiddty:我很确定您在问题下的评论描述了提问者的意思。但如果这是一个 Array 或类似 Array 的集合,其索引可能非常高,则可能会出现意想不到的结果。
  • 我肯定为此 +1 了,因为这是一件好事。
【解决方案2】:

没有行为差异。使用最适合您正在实施的方案的方案。

【讨论】:

    猜你喜欢
    • 2011-09-09
    • 2019-05-05
    • 2013-07-21
    • 2011-05-02
    • 2011-05-02
    • 2017-01-24
    • 1970-01-01
    相关资源
    最近更新 更多