Javascript二進位制運算子的一些運用場景

創客青年發表於2019-01-18

二進位制或運算子
二進位制或運算子用來比較兩個運運算元,兩個二進位制位當中只要有一個為1那麼返回1,否則返回0

常見使用場景
用來進行取證

2.9 | 0 // 2
-2.9 | 0 // -2

異或運算子
異或運算(^)在兩個二進位制位不同時返回1,相同時返回0。

常見使用場景
連續對兩個數進行三次異或運算,可以互換他們的值。

var a = 10;
var b = 99;

a ^= b, b ^= a, a ^= b;

a // 99
b // 10

左移運算子
左移運算子將一個數的二進位制值向左移動一位,尾部補0,即乘以2的指定次方。

常見使用場景
將顏色的 RGB 值轉為 HEX 值。

 var color = {r: 186, g: 218, b: 85};
 
 // RGB to HEX // (1 << 24)的作用為保證結果是6位數 var rgb2hex = function(r, g, b)
 {   return `#` + ((1 << 24) + (r << 16) + (g << 8) + b)
     .toString(16) // 先轉成十六進位制,然後返回字串
     .substr(1);   // 去除字串的最高位,返回後面六個字串 }
 
 rgb2hex(color.r, color.g, color.b) // "#bada55"

左移0位取整

13.5 << 0
// 13

-13.5 << 0
// -13

相關文章