JavaScriptには多くの演算子があり、主に算術演算子、同一演算子、比較演算子、文字列演算子、論理演算子、代入演算子などに分かれています。それぞれに独自の演算ルールがあります
JavaScript には多くの演算子があり、主に算術演算子、等価演算子、比較演算子、文字列演算子、論理演算子、代入演算子などに分類されます。これらの演算子には独自の演算ルールがいくつかあります。JavaScript の演算子を紹介します。
1. JavaScript 演算子の種類
1. 算術演算子: + 、 - 、 * 、 / 、 % 、 - (単項否定) 、 ++ 、 --
2. 同一および同一の演算子 :==、 ===、!==、!===
3. 比較演算子: <、>、<=、>=
4. 文字列演算子: <、> ;、<=、> ;=, =, +
5. 論理演算子: &&, ||, !,
6. 代入演算子: =, +=, *=, -=, /=
2. JavaScript 演算子の規則
1. 算術演算子のルール
「+」: 「加算」および「接続」演算を実行できます。2 つの演算子の一方が文字列の場合、JavaScript はもう一方を文字列に変換し、2 つのオペランドを連結します。
「+」: オペランドがオブジェクトの場合、JavaScript はオブジェクトを加算用の数値または連結用の文字列に変換します。
「-」「*」「/」 2 つのオペランドのいずれかがそうでない場合。数値の場合は、数値に変換して数学的演算を実行します。
「/」 JavaScript では、すべての数値が浮動小数点数であるため、除算の結果はすべて浮動小数点数であり、0 で除算した結果はプラスまたはマイナスの無限大になります。0/0 は NaN になります。
"%" モジュロ演算子: 最初のオペランドから 2 番目のオペランドまでのモジュロを計算します。つまり、最初のオペランドを 2 番目のオペランドで除算したときの剰余が返されます。オペランドが数値以外の場合は、数値に変換されます。
「-」単項否定:オペランドが数値でない場合は、オペランドを数値に変換します。
「++」「--」 インクリメント演算子/デクリメント演算子の記号: オペランドは、変数、ツリー グループの要素、またはオブジェクトの属性である必要があります。オペランドが数値でない場合は、数値に変換されます。
注: 「++」がオペランドの前にある場合、最初にオペランドをインクリメントしてから、オペランドのインクリメント後の値を計算します。
オペランドの後に「--」がある場合は、オペランドがインクリメントされる前の値を計算してからオペランドをインクリメントします。
例: i = 1; //i に値 1 を代入します
j = ++i; //まず i を 2 に代入し、次に i の値を 2 に代入します。 j も 2 です。
i = 1; //i に値 1 を代入します
j = i++; //最初に i を j に代入し、次に i の値を 2 にインクリメントします。i の値は 2、j の値は 1 です。 。
デクリメント演算子「--」は「++」と同じです。
2. 等価演算子と同一演算子
(I) "==" "!==" 等価演算子と非等価演算子:
2 つのオペランドを比較し、非ブール値を返します。
数値、文字列、ブール値の比較はすべて定量的な値を使用します。 2 つの変数は、それらに格納されている値が等しい場合にのみ等しいと言えます。
オブジェクト、配列、関数を比較する場合、2 つの変数が同じオブジェクトを参照する場合にのみ参照が使用されます。 2 つの異なる配列は、要素がまったく同じであっても、まったく異なります。オブジェクト、配列、関数への参照を格納する変数の場合、それらが同じオブジェクト、配列、または関数を参照する場合にのみ等しくなります。
従うべき原則:
2 つのオペランドの型が異なる場合: それらを同じ型に変換します。
1) 数値と文字列 文字列が数値に変換された後、それを比較します。 。
2) trueは1に、falseは0に変換して比較します。
3) オブジェクト、配列、関数と数値または文字列、オブジェクト、配列、関数はプリミティブ型の値に変換されて比較されます。 (最初に valueOf を使用し、それが機能しない場合は toString を使用します)
4) 他の種類の組み合わせは等しくありません。
2つのオペランドの型が同じ、または同じ型に変換後の場合:
1) 2つの文字列: 同じ位置の文字が等しい場合、2つの文字列は同じです。
2)2つの数字:2つの数字が同じであれば、それらは同じです。一方が NaN の場合、または両方が NaN の場合は同じではありません。
3) 両方が真である場合、または両方が偽である場合、それは同じことを意味します。
4) 2 つの参照が同じオブジェクト、関数、または配列を参照している場合、それらは同じではありません。異なるオブジェクト、関数、または配列を参照している場合でも、それらは同じではありません。完全に元の値と同等に変換できます。
5) 2 つの null、または両方が未定義の場合、それらは等しい。
「!=」非等価演算子:等価演算子の検出結果が逆になります。
(II) "===" "!===" 同一演算子と非同一演算子記号:
同一演算子は等価演算子の比較規則に従いますが、2 つのオペランドの型が異なる場合は、2 つのオペランドの型が同じである場合にのみ false が返されます。等価演算はシンボルの比較規則に従って行われます。
「!==」非同一演算子は、同一演算子とは逆の結果になります。 2 つのオペランドの型または値が異なる場合は true を返します。
3. 比較演算子
これらの比較演算子は、異なる型の値を比較するために使用され、結果はブール値を返します。
「<」「>」「<=」「>=」
ルールに注意してください: 比較のオペランドは任意の型にすることができますが、実行できるのは数値とオペランドに対してのみです。数値や文字列ではないオペランドは、数値または文字列に変換されます。
1) 両方のオペランドが数値であるか、両方とも数値に変換できる場合、比較は数値のサイズに基づいて行われます。
2) 両方のオペランドが文字列であるか、両方とも文字列に変換できる場合、比較は行われます。アルファベット順に行われます。
3) 文字列が数値に遭遇した場合、文字列は比較のために数値に変換されます。
4) オペランドを数値または文字列に変換できない場合、結果は false になります。
4. 文字列演算子
専用の文字列演算子はありませんが、一部の演算子は文字列オペランドに遭遇したときに異なる動作をします。
(I) "+" は 2 つの文字列を結合します。 「>」のような比較演算子は、比較によって 2 つの文字列の順序を確認します。文字の順序は、小さい文字が大きい文字の前に、大文字が小文字の前になります。
(III) "+" の関数は計算順序に依存します。
例: s = 1 + 2 + "var" then: 1+2 が最初に計算され、次に計算されるため、結果 3var が返されます。結果 3 は文字列に変換されます。「var」で接続します。
例: s = "var" + 1 + 2 の場合: var と 1 の間の接続が最初に計算され、次に結果 var1 が計算されます。を文字列に変換した2で繋ぎます。
5. 論理演算子
はブール演算を実行するために使用され、複雑な比較演算を表現するために比較演算子と一緒によく使用されます。
「&&」論理AND演算、「||」論理OR演算子、「!」論理NOT演算子
(I)「&&」両方のオペランドがブール値の場合、論理ANDが演算されます。両方のブール値が true の場合にのみ、結果として true を返し、それ以外の場合は false を返します。
注: 実際のパフォーマンス
「&&」は最初の式オペランドのブール値を検出します。最初のオペランド式が false を返す場合は、左側の最初のオペランド式の値を返します。それ以外の場合は検出を続けます。右側の 2 番目のオペランド式の値を返します
例: if (a = b) stop() と (a = b) && stop() ; このメソッドは同等です。演算子の右側のコードは実行されることが保証されていないため、廃止予定です。
例: if ((a < b) && (b++ <10) ) stop();右側は必要ですが、前の戻り値のせいで実行されない可能性があります。 && の右側に他の関数 (代入、関数呼び出し、インクリメント、デクリメント) を使用するのは一般的に反対です。
「&&」を変更します。これをブール代数演算子と考える方が簡単で安全です。
(II) "||" 両方のオペランドがブール値の場合、論理和はそれらに対して OR 演算を実行します。つまり、2 つのブール値のいずれかが true の場合、結果は true、それ以外の場合は false が返されます。 。
注: 実際のパフォーマンス
「||」は、最初の式オペランドのブール値を検出します。最初のオペランド式が true を返す場合は、左側の最初のオペランド式の値を返します。右側の 2 番目のオペランド式を検出し続け、2 番目のオペランド式の値を返します
演算子の右側のコードは実行されることが保証されていないため、このメソッドも非推奨です。一般に、 || の右側に他の関数 (代入、関数呼び出し、インクリメント、デクリメント) を含む式を使用することに反対します。
「||」をブール代数演算子とみなす方が簡単で安全です。
(III) 「!」論理否定はオペランドの前に置かれる単項演算子であり、その目的はオペランドを否定することです。
6. 代入演算子
(I) "= は代入演算子です。常に左側のオペランドが変数、配列の要素、またはオブジェクトの属性であることを期待します。 right オペランドを任意の型にします。
式内に複数の代入演算子がある場合、右から左への結合演算子から計算が開始されます。
注: 各代入式には値があり、これは演算子の右側の値です
(II) 左側の値を値に加算した後、演算
で代入演算を使用できます。右側の値、左側の値は割り当てられた値です。 "-=" "/=" "*=" メソッドは同じです。
7. その他の演算子
"?:" 条件演算子は、式 1 のブール値のみです。任意の型の値): 式 2 (任意の型の任意の値);
最初のオペランドのブール結果に基づいて、それが true の場合、2 番目のオペランドの式が実行され、2 番目のオペランドの値が返されます。 2 つのオペランド式。最初のオペランドのブール結果が false の場合、3 番目のオペランド式が実行され、3 番目のオペランド式の値が返されます。
3. JavaScript 演算子に関する注意事項
1. 演算子に渡されるデータ型と返されるデータ型に注意してください! 演算子によって、オペランド式によって計算される結果が特定のデータ型に準拠することが期待されます。
例: 文字列の乗算は実行できません。「a」 * "b" は不正ですが、可能な場合、JavaScript は式を正しい型に変換するため、式「 3」 * "5" は正当です。 JavaScript は文字列を数値に変換し、演算を実行します。結果は文字列「15」ではなく、数値 15 になります。
2. + はオペランドによって性能が異なります:
String + String = String (concatenated) "a" + "b" = "ab" "5" + "6" = "11"
String +数値 = (数値に変換された文字列) 文字列 (連結); "a" + 5 = "a5" 5 は文字列 "1" + 0 = "10" に変換されます
数値 + 数値 = 数値 (加算) 5 + 5 = 10.
3. 演算子の結合性に注意してください。左から右に結合する演算子もあれば、右から左に結合する演算子もあります。
例: w = a + b + c は w = (a + b) + c と同等です
w = ---b は w = - ( - ( -b ) ) と同等です。 = b = c は w= ( a = ( b = c )) と同等です
単項演算子、代入演算子、三項演算子の結合性は右から左です
ここで JavaScript 演算子を紹介します。皆様の日常生活のお役に立てれば幸いです。
以上がJavaScriptの演算子の種類と使用ルールを簡単に説明します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。