美文网首页
JS 函数 | 简化 indexOf 判断的位反操作

JS 函数 | 简化 indexOf 判断的位反操作

作者: 猫大顾 | 来源:发表于2021-06-30 16:24 被阅读0次

String indexOf() :返回某个指定的字符串值在字符串中首次出现的位置(对大小写敏感),如果检索的字符串值没有出现,则返回 -1。

Array indexOf() :返回数组中某个指定的元素位置。如果没找到指定元素则返回 -1。

indexOf 结合位反操作

原文:https://blog.csdn.net/weixin_34143774/article/details/85558633

补码:在计算机系统中,数值用补码来表示。任何数值 n 的位反 ~n === -(n + 1)

例:

~8 === -9  |  ~-9 === 8

~1 === -2  |  ~-2 === 1

~0 === -1  |  ~-1 === 0

只有 ~-1 才等于 0,对非 -1 值取反永远不为 0。所以n !== -1可简化为~n,n === -1可简化为!~n

举例:if (status === 301 || status === 302) {}

利用 Array 和 indexOf,上面的代码可简化成:if ([301, 302].indexOf(status) !== -1) {}

利用位反操作,可进一步简化:if (~[301, 302].indexOf(status)) {}

相关文章

网友评论

      本文标题:JS 函数 | 简化 indexOf 判断的位反操作

      本文链接:https://www.haomeiwen.com/subject/erprultx.html