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