JavaScript基礎学習シリーズ23:引き算演算子

加算演算子と同様に、減算演算子には、ECMAScript の異なる型間の変換を処理するための一連のルールがあります。

  • 両方のオペランドが数値の場合、数学的な減算演算が実行され、結果が返されます。
  • いずれかのオペランドが NaN の場合、NaN が返されます。
  • Infinity から Infinity を引いた場合、NaN が返されます。
  • -Infinity から -Infinity を引いた場合、NaN を返します。
  • Infinity から -Infinity を引いた値の場合、Infinity が返されます。
  • -Infinity から Infinity を引いた場合、-Infinity が返されます。
  • +0 マイナス +0 の場合、+0 が返されます。7
  • +0 から -0 を引いた場合、-0 が返されます。
  • -0 から -0 を引いた場合、+0 が返されます。
  • いずれかのオペランドが文字列、ブール値、null、または未定義の場合、まずバックグラウンドで Number() を使用して数値に変換され、その後、前述のルールに従って数学演算が実行されます。変換結果が NaN の場合、減算結果は NaN になります。
  • いずれかのオペランドがオブジェクトの場合、その valueOf() メソッドが呼び出されて、それを表す値が取得されます。値が NaN の場合、減算計算の結果は NaN になります。オブジェクトに valueOf() メソッドがない場合は、その toString() メソッドが呼び出され、結果の文字列が数値に変換されます。

let result1 = 5 - true; // true被转换为1,所以结果是4 let result2 = NaN - 1; // NaN
let result3=5-3; let result4 = 5 - ""; let result5 = 5 - "2"; let result6 = 5 - null;
//2
// ""被转换为0,所以结果是5 // "2"被转换为2,所以结果是3 // null被转换为0,所以结果是5

1. 関係演算子:

関係演算子は、より小さい (<)、より大きい (>)、以下 (<=)、以上 (>=) などの 2 つの値を比較する演算を実行します13。数学の授業で習ったこと。

ECMAScript の他の演算子と同様、型変換やその他の動作は、異なるデータ型に適用されるときに発生します。

  • オペランドが両方とも数値の場合、数値比較が実行されます。
  • オペランドが両方とも文字列の場合、文字列内の対応する文字のエンコーディングが 1 つずつ比較されます。
  • どちらかのオペランドが数値の場合、もう一方のオペランドは数値に変換され、数値比較が実行されます。
  • いずれかのオペランドがオブジェクトの場合、その valueOf() メソッドが呼び出され、結果を取得した後、前述のルールに従って比較が実行されます。valueOf() 演算子がない場合は、toString() メソッドが呼び出され、結果が取得された後、前の規則に従って比較が実行されます。
  • いずれかのオペランドがブール値の場合は、数値に変換されて比較が実行されます。

関係演算子を使用して 2 つの文字列を比較すると、興味深い現象が発生します。多くの人は、「未満」は「アルファベット順に前」を意味し、「以上」は「アルファベット順に後」を意味すると考えていますが、実際はそうではありません。文字列の場合、関係演算子は文字列内の対応する文字のエンコーディングを比較します。これらのエンコーディングは数値です。比較後、ブール値が返されます。問題の核心は、大文字のエンコーディングが小文字のエンコーディングよりも小さいことです。

おすすめ

転載: blog.csdn.net/wanmeijuhao/article/details/135450119