摘要:主要有以下幾種位操作符一般來說,我們在中很少能用到這些位操作符,但在某些特殊情況下,這些簡單的操作符卻能抵得上好幾行代碼如果不在乎可讀性的話。
Javascript主要有以下幾種位操作符:
AND ( & )
OR ( | )
XOR ( ^ )
NOT ( ~ )
LEFT SHIFT ( << )
RIGHT SHIFT ( >> )
ZERO-FILL RIGHT SHIFT ( >>> )
一般來說,我們在Javascript中很少能用到這些位操作符,但在某些特殊情況下,這些簡單的操作符卻能抵得上好幾行代碼(如果不在乎可讀性的話)。
-(n+1)對一個數(shù)進行~運算,等同于-(n+1)
~1 === -2 // => true
Note: 這只能應用于整數(shù)部分,~1.1 === -2
這在實際使用中常常配合indexOf一起使用,if (~array.indexOf(string))等同于if (array中沒有string)
取整(忽略小數(shù)部分)~~1.1 === 1 // => true 1.1 ^ 0 === 1 // => true
這兩個在某些JS庫或游戲編程中經常使用。
總結總的來說,位操作符畢竟可讀性不太好,列出來只是為了以后遇到這樣的代碼能看的懂,實際項目中還是不要玩這些花的東西比較好。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/78556.html
此專欄文章是對力扣上算法題目各種方法的總結和歸納, 整理出最重要的思路和知識重點并以思維導圖形式呈現(xiàn), 當然也會加上我對導圖的詳解. 目的是為了更方便快捷的記憶和回憶算法重點(不用每次都重復看題解), 畢竟算法不是做了一遍就能完全記住的. 所以本文適合已經知道解題思路和方法, 想進一步加強理解和記憶的朋友, 并不適合第一次接觸此題的朋友(可以根據(jù)題號先去力扣看看官方題解, 然后再看本文內容). 關...
摘要:尋找兩個有序數(shù)組的中位數(shù)給定兩個大小為和的有序數(shù)組和。請你找出這兩個有序數(shù)組的中位數(shù),并且要求算法的時間復雜度為。你可以假設和不會同時為空。示例則中位數(shù)是示例則中位數(shù)是答案參考排序中位數(shù) LeetCode4.尋找兩個有序數(shù)組的中位數(shù) JavaScript 給定兩個大小為m和n的有序數(shù)組nums1和nums2。請你找出這兩個有序數(shù)組的中位數(shù),并且要求算法的時間復雜度為 O(log(m +...
摘要:我們可以維護一個大小為的小頂堆,然后依次遍歷數(shù)組,如果數(shù)組數(shù)據(jù)比堆頂元素大,則插入到堆中,如果小,則不做處理。我們可以維護一個大頂堆,一個小頂堆,小頂堆中存儲后個數(shù)據(jù),大頂堆中存儲前面剩余的數(shù)據(jù)。 1. 概述 前面說完了堆這種數(shù)據(jù)結構,并且講到了它很經典的一個應用:堆排序,其實堆這種數(shù)據(jù)結構還有其他很多的應用,今天就一起來看看,主要有下列內容: 優(yōu)先級隊列 求 Top K 問題 求...
閱讀 1171·2021-11-24 09:39
閱讀 2675·2021-09-28 09:35
閱讀 1070·2019-08-30 15:55
閱讀 1361·2019-08-30 15:44
閱讀 880·2019-08-29 17:00
閱讀 1969·2019-08-29 12:19
閱讀 3310·2019-08-28 18:28
閱讀 690·2019-08-28 18:10