JavaScript中的“!〜”是什么意思?

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

  • 在表达式之前,代字号在做什么? 6个答案

  • TL;博士

    当在数组中找不到元素时, indexOf返回-1。 因此, if语句正在检查name是否找不到names!~-1 ==> true

    更长的版本:

    波浪号( ~ )运算符(按位NOT)产生a的倒数值(又称补码)。 [Source]例如, ~-1 === 0 。 请注意, 0 == false!0 === true 。 当在数组中找不到元素时, indexOf返回-1。 因此,我们可以用!~-1 === true找出如果indexOf找不到namenames (即返回-1)。

    我的想法:

    正如你所看到的,使用这些混淆或“聪明”的技术而没有评论可能会让读者感到困惑。 如果您喜欢这些技术,请为您的读者记录您的代码行正在做些什么!


    ! (Logical NOT)如果其单个操作数可以转换为true,则返回false; 否则,返回true。

    对于除-1之外的所有整数操作数,应用〜运算符后的净操作数为! 操作符会在真实中导致FALSE。 -1是特殊的,因为〜(-1)给出了0,这在JavaScript中是虚假的。 添加! 运营商给我们唯一的TRUE。

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

    上一篇: what's the " !~" mean in javascript

    下一篇: Why "~undefined" is