什么是JavaScript中的“double tilde”(~~)运算符?

这个问题在这里已经有了答案:

  • ~~(“double tilde”)在Javascript中做什么? 9个答案

  • ~~是一个双NOT运算符。

    它用作Math.floor()的更快替代品。


    它隐藏了代码的意图。

    它是两个单独的代字符运算符,所以它按位补(不按位)两次。 这些操作互相取消,因此唯一剩下的效果是在应用第一个运算符之前完成的转换,即将该值转换为整数。

    有些人使用它作为Math.floor的更快选择,但速度差别并不那么显着,在大多数情况下,它只是微型优化。 除非你有一段真正需要优化的代码,否则你应该使用描述它的代码,而不是使用非操作副作用的代码。

    2011-08更新:

    通过优化浏览器中的JavaScript引擎,操作员和功能的性能发生变化。 对于目前的浏览器,在某些浏览器中使用~~而不是Math.floor的速度要快一些,而在某些浏览器中的速度并不快。 如果您真的需要额外的性能,您需要为每个浏览器编写不同的优化代码。

    请参阅:波浪与地面


    ~(5.5)   // => -6
    ~(-6)    // => 5
    ~~5.5    // => 5  (same as Math.floor(5.5))
    ~~(-5.5) // => -5 (NOT the same as Math.floor(-5.5), which would give -6 )
    

    有关更多信息,请参阅:

  • http://dreaminginjavascript.wordpress.com/2008/07/04/28/
  • 链接地址: http://www.djcxy.com/p/17721.html

    上一篇: What is the "double tilde" (~~) operator in JavaScript?

    下一篇: Generating random whole numbers in JavaScript in a specific range?