擴充套件運算子(spread)是三個點(…)。它好比 rest 引數的逆運算,將乙個陣列轉為用逗號分隔的引數序列。
他的應用:
(1)複製陣列
const a = [1,2,3]
複製 cosnt b = […a]
(2)合併陣列
cosnt arr1 = [1,2]
const arr2 = [4,5,6]
合併[…arr1,…arr2],注意這種方式是淺拷貝,如果修改了引用指向的值,會同步反映到新陣列
(3)與解構賦值結合
例子:const [first, …rest] = [1, 2, 3, 4, 5];
first // 1
rest // [2, 3, 4, 5]
const [first, …rest] = ;
first // undefined
rest //
const [first, …rest] = [「foo」];
first // 「foo」
rest //
如果將擴充套件運算子用於陣列賦值,只能放在引數的最後一位,否則會報錯。
(4)字串
擴充套件運算子還可以將字串轉為真正的陣列。
涉及到操作四個位元組的 unicode 字元的函式最好都用擴充套件運算子改寫。
『x\ud83d\ude80y』.length // 4
[…『x\ud83d\ude80y』].length // 3
(5)實現了 iterator 介面的物件
(6)map 和 set 結構,generator 函式
詳情見:
位運算子 操作符
按位與 按位或 取反 按位異或 按位異或可以實現兩個變數值的交換,但是並不推薦。a b b a a b 都是雙目運算子,將二進位制向左移動指定位,高位丟棄,低位補0.當為負數時,根據編譯系統的規定補0,或者1.例 0x01 2 3 這裡要考慮運算子的優先順序。的優先順序大於 的優先順序,所以0x01...
運算子以及操作符大全
c的運算子有以下幾類 1.算術運算子 2.關係運算子 3.邏輯運算子 4.位運算子 5.賦值運算子 及擴充套件賦值運算子 6.條件運算子 7.逗號運算子 8.指標運算子 和 9.求位元組數運算子 sizeof 10.強制型別轉換 運算子 型別 11.分量運算子 12.下標 運算子 13.其他 如 函...
操作符 (邏輯運算子)
操作符 關係操作符 關係操作符 關係操作符 比較兩個變數之間的關係 大於 大於或等於 小於 小於或等於 是否相等 是否不等 邏輯運算子 長路與 和 短路與 長路或 和 短路或 取反 異或 邏輯運算子 public class count 長路或和短路或 無論長路或還是短路或 兩邊的運算單元都是布林值...