チルダ演算子を前に置いた条件式
JavaScript では、式の前にチルダ (~) 演算子を付けて、ビット単位の否定を実行できます。条件式を操作する場合、この演算子は特定の用途に使用できます。
コード例:
var attr = ~'input,textarea'.indexOf( target.tagName.toLowerCase() ) ? 'value' : 'innerHTML'
説明:
indexOf() 関数は、ターゲット値が見つからない場合に -1 を返します。 ~ 演算子を使用してこの値を否定することにより、一致する場合は真 (ゼロ以外の任意の値) に、一致しない場合は偽 (-1) に効果的に変換されます。
ビット単位の演算:
JavaScript では、数値は内部的に 32 ビット整数として表されます。 ~ 演算子は、オペランド内のすべてのビットを反転し、事実上反転します。
たとえば、'input,textarea'.indexOf( target.tagName.toLowerCase() ) の値が 1 (文字を表す) の場合、 'i')、そのバイナリ表現は次のようになります:
0000 0000 0000 0000 0000 0000 0000 0001
~ 演算子を適用すると、すべての演算子が反転されます。
1111 1111 1111 1111 1111 1111 1111 1110
結果の値は 2 の補数表現で -2 になります。
条件の結果:
条件式内、 ~'input,textarea'.indexOf( target.tagName.toLowerCase() ) の値は'value' または 'innerHTML' を attr 変数に割り当てるかを決定するために評価されます。ターゲットが見つかった場合、式は true と評価され、「value」が attr に割り当てられます。それ以外の場合、ターゲットが見つからない場合、式は false と評価され、その結果、「innerHTML」が attr.
に割り当てられます。以上がチルダ演算子は JavaScript の条件式にどのような影響を与えますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。