这个脚本中的“〜”操作符做了什么?
这个问题在这里已经有了答案:
这个脚本中的“〜”操作符做了什么?
正如其他人指出的那样,它是一个按位运算符。 这一切都很好,但是在这个剧本中它的作用就是这个问题。 :-)
这个想法可能与你所说的完全相同:如果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 。
