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