result = ~ [Number]
すべての単項演算子 (~ 演算子など) は、次の規則に従って式を評価します。
1 未定義の式に適用される場合、またはnull 式を使用すると、ランタイム エラーが発生します。
2. オブジェクトを文字列に変換します。
3. 可能であれば、文字列を数値に変換します。 そうしないと、実行時エラーがスローされます。
4. ブール値は数値として扱われます (false の場合は 0、true の場合は 1)。
演算子は、結果の数値に適用されます。
~ 演算子は、式のバイナリ表現の値を調べ、ビット単位の NOT 演算を実行します。
式内のいずれかのビットが 1 の場合、結果内のそのビットは 0 になります。 式内のいずれかのビットが 0 の場合、結果ではそのビットが 1 になります。
次の例は、負の 10 進数の 2 進数表現を含むビット単位の NOT (~) 演算子の使用法を示しています。これに詳しくない場合は、「 負の 10 進数の 2 進数、8 進数への変換」を参照してください。 、および 16 進数 》。
var temp = ~5;
/*
5 バイナリ 101、32 ビットを埋めます
0000000000000000000000000000101
ビットごとに否定します
11111111111111111111111111111010
最初の 3 以降2 ビットは 1 で始まるため、これは負の数です。バイナリを負の値に変換します。数値、最初に
0000000000000000000000000000101
を反転し、次に 1
000000000000000000000000000000110
を 10 進数の 6 に変換し、符号を追加して負の数 -6
*/
アラート( temp);
// ポップアップ【-6】