关于~运算符的使用

关于~运算的使用

  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
上一篇:c++小数点后舍入


下一篇:PostgreSQL将日期转为当前年、月、日的函数date_trunc