JavaScript の「ダブルチルダ」(~~) 演算子とは何ですか? [重複] 質問する

JavaScript の「ダブルチルダ」(~~) 演算子とは何ですか? [重複] 質問する

いくつかのコードでこれを見ましたが、それが何をするのか全く分かりません:

var jdn = function(y, m, d) {
  var tmp = (m <= 2 ? -1 : 0);
  return ~~((1461 * (y + 4800 + tmp)) / 4) + 
         ~~((367 * (m - 2 - 12 * tmp)) / 12) - 
         ~~((3 * ((y + 4900 + tmp) / 100)) / 4) + 
         d - 2483620;
};

オペレーターは何を~~しますか?

ベストアンサー1

それは~~ダブルだビット否定演算子

これは、より速い代替Math.floor()正の数の場合Math.floor()、小数点以下の部分を切り取るだけなので、負の数の場合と同じ結果は返されません(この例については他の回答を参照してください)。

おすすめ記事