天天看點

關于~運算符的使用

關于

~

運算的使用

  1. “~”即“非”運算,在二進制裡對數字的每一位進行取反
    • 在實際表現上則是

      -num-1

      ~1=>-2 ~-1=>0

    • 在運算時

      NaN

      被當作0來運算
    • 根據這個特性可以在String.indexOf()的結果中直接判斷有沒有查找的字元
是以

!!~string.indexOf("something")

等價于

string.includes("something")

  1. 實際中

    ~~

    更加容易被用到
    • 經過兩次

      ~~

      運算會得到運算數的整數部分
    • ~~3.14 => 3

      ~~-3.14 => -3

      ~~NaN => 0

      ~~-0 => 0

    • 該方法與

      Math.trunc()

      的唯一不同點是

      Math.trunc(NaN) => NaN

      Math.trunc(-0) => -0