JavaScript中的“!〜”是什么意思?
这个问题在这里已经有了答案:
TL;博士
当在数组中找不到元素时, indexOf返回-1。 因此, if语句正在检查name是否找不到names 。 !~-1 ==> true
更长的版本:
波浪号( ~ )运算符(按位NOT)产生a的倒数值(又称补码)。 [Source]例如, ~-1 === 0 。 请注意, 0 == false和!0 === true 。 当在数组中找不到元素时, indexOf返回-1。 因此,我们可以用!~-1 === true找出如果indexOf找不到name的names (即返回-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
