这个脚本中的“〜”操作符做了什么?

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

  • 如何:〜运营商? 4个答案
  • !!〜(不是不用颚化/砰砰砰砰声)改变'contains / included'数组方法调用的结果吗? 13个答案

  • 这个脚本中的“〜”操作符做了什么?

    正如其他人指出的那样,它是一个按位运算符。 这一切都很好,但是在这个剧本中它的作用就是这个问题。 :-)

    这个想法可能与你所说的完全相同:如果index是一个数字,则进行splice~操作符对其操作数的第一件事情是将其转换为数字(如果可以)。 如果不能,结果是NaN (“不是数字”),这是错误的,所以条件将是错误的, splice不会发生。

    但是,这种转换并没有像我怀疑代码的作者所想的那样经常导致NaN 。 :-)

    一些不会splice随机事例:

    ~-1 === 0
    

    还有一些会做splice

    ~"foo" === -1
    ~0 === -1
    ~1 === -2
    ~2 === -3
    ~true === -2
    ~false === -1
    ~-2 === 1
    ~undefined === -1
    ~null === -1
    ~NaN === -1
    

    可能并不理想,它试图与其中的一些splice 。 例如, true将使它使用索引1进行拼接, false将为索引0

    链接地址: http://www.djcxy.com/p/74961.html

    上一篇: what does "~" operator do in this script?

    下一篇: Append number to a comma separated list