ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript の二重傾斜演算子 (~~) とは何ですか? Math.floor() との比較は何ですか?

JavaScript の二重傾斜演算子 (~~) とは何ですか? Math.floor() との比較は何ですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-01 09:05:02327ブラウズ

What is the Double Tilded Operator (~~) in JavaScript and How Does It Compare to Math.floor()?

JavaScript の二重傾斜演算子 (~~)

質問:

特定のコード内サンプルでは、​​「二重チルダ」(~~) 演算子が発生します。その目的は何ですか?また Math.floor() 関数との違いは何ですか?

答え:

~~ 演算子は Double Bitwise NOT 演算子です。 Math.floor() 関数よりも高速で正の数値結果が得られます。

Double Bitwise NOT 演算は、数値を 32 ビット整数に変換し、ビット単位の NOT 演算子 (~) を 2 回適用します。結果の値は次のとおりです。

~~x = -(~~~x + 1)

~ 演算子はビット パターン内の 0 と 1 を反転するため、~~ 演算は正の数値の小数部分をゼロに向かって切り捨てることによって実質的に削除します。

Math.floor() 関数との違い:

は、正の数に対する Math.floor() のより高速な代替として使用できますが、負の数でも同じ結果になります。 は単純に小数部分を切り捨てますが、Math.floor() は最も近い整数に切り捨てます。

例:

console.log(~~2.3); // Output: 2 (equivalent to Math.floor(2.3))
console.log(~~-2.3); // Output: -2 (different from Math.floor(-2.3) which equals -3)

以上がJavaScript の二重傾斜演算子 (~~) とは何ですか? Math.floor() との比較は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。