js中~~和^=分別代表什么,用處是什么?


先看個栗子:

~~false === 0  
~~true === 1
~~undefined === 0
~~!undefined === 1
~~null === 0
~~!null === 1  
~~"" === 0
~~!"" === 1

~是按位取反的意思,計算機里面處理二進制數據時候的非,~~就是再轉回來,利用兩個按位取反的符號,進行類型的轉換,轉換成數字符號。

而在計算機里面的^=是異或運算,相同取0,不同取1.

兩個整數交換可以醬紫表示:

var  a = 10,b=20;
a ^= b; b^=a;a^=b;   

 將a = a ^= b; b = b^=a; a = a^=b;在js中類似於:

var a = 1,b = 2;
a = a + b;
b = a - b;
a = a - b;
a // 2
b //1

不過這種方法適用於任意兩個數字類型的交換,無論是整數類型還是小數。

其次,交換兩個變量,最簡單的方式是:

var a = 2,b = 'Miya';
[a,b,] = [b,a,]
a // Miya
b //2

 這個是ES6中的數組的解構賦值,很方便的進行兩個變量的交換。 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM