资讯专栏INFORMATION COLUMN

JavaScript中位操作符的特殊作用

NeverSayNever / 2433人阅读

摘要:主要有以下几种位操作符一般来说,我们在中很少能用到这些位操作符,但在某些特殊情况下,这些简单的操作符却能抵得上好几行代码如果不在乎可读性的话。

Javascript主要有以下几种位操作符:

AND ( & )

OR ( | )

XOR ( ^ )

NOT ( ~ )

LEFT SHIFT ( << )

RIGHT SHIFT ( >> )

ZERO-FILL RIGHT SHIFT ( >>> )

一般来说,我们在Javascript中很少能用到这些位操作符,但在某些特殊情况下,这些简单的操作符却能抵得上好几行代码(如果不在乎可读性的话)。

-(n+1)

对一个数进行~运算,等同于-(n+1)

~1 === -2 // => true

Note: 这只能应用于整数部分,~1.1 === -2

这在实际使用中常常配合indexOf一起使用,if (~array.indexOf(string))等同于if (array中没有string)

取整(忽略小数部分)
~~1.1 === 1 // => true
1.1 ^ 0 === 1 // => true

这两个在某些JS库或游戏编程中经常使用。

总结

总的来说,位操作符毕竟可读性不太好,列出来只是为了以后遇到这样的代码能看的懂,实际项目中还是不要玩这些花的东西比较好。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/78556.html

相关文章

  • ❤️思维导图整理大厂面试高频数组10: 3种方法彻底解决中位数问题, 力扣4❤️

    此专栏文章是对力扣上算法题目各种方法的总结和归纳, 整理出最重要的思路和知识重点并以思维导图形式呈现, 当然也会加上我对导图的详解. 目的是为了更方便快捷的记忆和回忆算法重点(不用每次都重复看题解), 毕竟算法不是做了一遍就能完全记住的. 所以本文适合已经知道解题思路和方法, 想进一步加强理解和记忆的朋友, 并不适合第一次接触此题的朋友(可以根据题号先去力扣看看官方题解, 然后再看本文内容). 关...

    XanaHopper 评论0 收藏0
  • LeetCode4.寻找两个有序数组中位JavaScript

    摘要:寻找两个有序数组的中位数给定两个大小为和的有序数组和。请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为。你可以假设和不会同时为空。示例则中位数是示例则中位数是答案参考排序中位数 LeetCode4.寻找两个有序数组的中位数 JavaScript 给定两个大小为m和n的有序数组nums1和nums2。请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m +...

    habren 评论0 收藏0
  • 数据结构与算法——堆应用

    摘要:我们可以维护一个大小为的小顶堆,然后依次遍历数组,如果数组数据比堆顶元素大,则插入到堆中,如果小,则不做处理。我们可以维护一个大顶堆,一个小顶堆,小顶堆中存储后个数据,大顶堆中存储前面剩余的数据。 1. 概述 前面说完了堆这种数据结构,并且讲到了它很经典的一个应用:堆排序,其实堆这种数据结构还有其他很多的应用,今天就一起来看看,主要有下列内容: 优先级队列 求 Top K 问题 求...

    zhiwei 评论0 收藏0

发表评论

0条评论

NeverSayNever

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<