ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScriptの演算子の種類とルールの紹介_基礎知識

JavaScriptの演算子の種類とルールの紹介_基礎知識

WBOY
WBOYオリジナル
2016-05-16 17:21:171306ブラウズ

JavaScript には多くの演算子があり、主に算術演算子、恒等演算子、比較演算子、文字列演算子、論理演算子、代入演算子などに分類されます。これらの演算子には独自の演算ルールがいくつかあります。JavaScript の演算子を紹介しましょう。

1. JavaScript 演算子の種類

1. 算術演算子: 、 - 、 * 、 / 、 % 、 -(単項否定) 、 、 --

2. 同一性演算子: ==、===、!==、!===

3. 比較演算子: 、=

4.文字列演算子: 、=、=、

5. 論理演算子: &&、||、!、

6. 代入演算子: =、=、*=、 -=, /=

2. JavaScript 演算子の規則

1. 算術演算子の規則

" ": 「加算」と「結合」演算を実行できます。2 つの演算子の一方が文字列の場合、JavaScript はもう一方を文字列に変換し、2 つのオペランドを接続します。

" ": オペランドがオブジェクトの場合、JavaScript はそのオブジェクトを加算用の数値または連結用の文字列に変換します。

"-""*""/" if one 2 つのオペランドのうちの が数値ではない場合は、数学演算を実行するために数値に変換されます。

「/」 JavaScript では、すべての数値が浮動小数点数であるため、除算の結果はすべて浮動小数点数となり、0 で除算した結果はプラスまたはマイナス 0/ になります。 0 は NaN です。

"%" モジュロ演算子: 最初のオペランドから 2 番目のオペランドまでのモジュロを計算します。つまり、最初のオペランドを 2 番目のオペランドで割ったときの剰余が返されます。オペランドが数値以外の場合は、数値に変換されます。

「-」単項否定: オペランドが数値でない場合は、オペランドを数値に変換します。

""--" インクリメント演算子/デクリメント演算子の記号: オペランドは、変数、ツリー グループの要素、またはオブジェクトの属性である必要があります。オペランドが数値でない場合は、数値に変換されます。

注: " " がオペランドの前にある場合は、まずオペランドをインクリメントしてから、オペランドのインクリメント後の値を計算します。

オペランドの後に「--」がある場合は、オペランドがインクリメントされる前の値を計算してからオペランドをインクリメントします。

例: i = 1; //値 1 を i に代入します

j = i; //まず i を 2 に増分し、次に 2 を j に代入します。 2 の場合、j の値も 2 になります。

i = 1; //i に 1 の値を代入します

j = i; //まず i を j に代入し、次に 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) 両方が true の場合、または両方が false の場合、同じことを意味します。

4) 2 つの参照が同じオブジェクト、関数、または配列を参照している場合、それらは同じではありません。異なるオブジェクト、関数、または配列を参照している場合でも、それらは同じではありません。関数と配列を参照すると、元の値とまったく同じ値に変換できます。

5) 2 つの null、または両方が未定義の場合、それらは等しい。

「!=」 非等価演算子: 等価演算子の検出結果と逆の結果になります。

(II) "===" "!===" 恒等演算子と非恒等演算子のシンボル:

恒等演算子は等価演算子の比較規則に従いますが、 2 つのオペランドの型が異なる場合は false が返され、2 つのオペランドの型が同じ場合にのみ等価演算子の比較規則が適用されます。

「!==」という非同一演算子は、同一演算子とは逆の結果をもたらします。 2 つのオペランドの型または値が異なる場合は true を返します。

3. 比較演算子

これらの比較演算子は、異なる型の値を比較するために使用され、結果はブール値を返します。

“” “=”

ルールに注意してください: 比較のオペランドは任意の型にすることができますが、実行できるのは数値とオペランドに対してのみです。数値や文字列ではないオペランドは、数値または文字列に変換されます。

1) 両方のオペランドが数値である場合、または両方を数値に変換できる場合、比較は数値のサイズに基づいて行われます。

2) 両方のオペランドが文字列である場合、またはそれらが文字列に変換でき、アルファベット順に比較されます。

3) 文字列が数値に遭遇した場合、文字列は比較のために数値に変換されます。

4) オペランドを数値または文字列に変換できない場合、結果は false になります。

4. 文字列演算子

専用の文字列演算子はありませんが、一部の演算子は文字列オペランドに遭遇したときに異なる動作をします。

(I)「 」は 2 つの文字列を連結します。

1) 両方のオペランドが文字列の場合、それらを連結します。

2) そのうちの 1 つが数値の場合、数値を文字列に変換し、それらを接続します。

(II)">" などの比較演算子は、比較を通じて 2 つの文字列の順序を確認し、比較では文字の順序が小さい方が前になります。大きい文字が、大文字が小文字より前に置かれます。

(III) " " のアクション方法は計算順序に依存します。

例: s = 1 2 "var" then: 1 2 が最初に計算されるため、結果 3var を返します。 、結果 3 を文字列に変換し、

と接続します。 例: s = "var" 1 2 の場合、結果 var12 を返します。が最初に計算され、次に結果 var1 が文字列に変換され、2 が接続されます。

5. 論理演算子

はブール演算の実行に使用され、複雑な比較演算を表現するために比較演算子と一緒に使用されることがよくあります。

「&&」論理 AND 演算子、「||」論理 OR 演算子、「!」論理 NOT 演算子

(I) 両方のオペランドがブール値の場合、「&&」つまり、両方のブール値が true の場合にのみ、結果は true になり、それ以外の場合は false が返されます。

注: 実際のパフォーマンス

"&&" は、最初の式オペランドのブール値を検出します。最初のオペランド式が false を返す場合、左側の最初のオペランドの値が返されます。式の値: false; それ以外の場合は、右側の 2 番目のオペランド式が引き続き検出され、2 番目のオペランド式の値が返されます。

例: if (a = b) stop ( ); (a = b) && stop(); と同等

演算子の右側のコードは実行されることが保証されていないため、このメソッドは非推奨です。たとえば、 : if (( a
"&&" をブール代数演算子とみなす方が簡単かつ安全です。
(II) "||" 両方のオペランドがブール値の場合、論理 OR はそれらに対して OR 演算を実行します。つまり、2 つのブール値のいずれかが true の場合、結果は true になります。それ以外の場合は false を返します。

注: 実際のパフォーマンス

"||" は、最初のオペランドのブール値を検出します。最初のオペランドの式が true を返す場合、左側の最初の演算が返されます。数値式の値: true; それ以外の場合は、右側の 2 番目のオペランド式が引き続き検出され、2 番目のオペランド式の値が返されます。

このメソッドも非推奨です。

シンボルの右側のコードは、通常、|| の右側で他の関数 (代入、関数呼び出し、インクリメントおよびデクリメント) を使用した式の使用に反対します。

Replace "| |" は、より単純で安全なブール代数演算子とみなされます。

(III) 「!」 論理否定はオペランドの前に置かれる単項演算子であり、その目的はオペランドを否定することです。

6. 代入演算子

(I) "= は代入演算子です。常に左側のオペランドが変数、配列の要素、または配列の属性であることを期待します。オブジェクト;

右辺は任意の型であると想定されます。

式に複数の代入演算子がある場合、計算は次から始まります。一番右のもの。

注: 各代入式には値があり、これは演算子の右側の値です。(II) 演算

で代入演算を使用できます。 “= 左側の値が右側の値に加算され、左側の値に代入されます。 「-=」「/=」「*=」は同じメソッドです。

7. 他の演算子

「?:」条件演算子は唯一の三項演算子です。 > 式のブール結果? 式 1 (任意の型の任意の値): 式 2 (任意の型の任意の値)

最初のオペランドのブール結果に基づいて、それが true の場合、 2 番目のオペランド式が実行され、2 番目のオペランド式の値が返されます。最初のオペランドのブール結果が false の場合、3 番目のオペランド式が実行され、2 番目のオペランド式の値が返されます。表現。


3. JavaScript 演算子に関する注意事項


1. 演算子に渡されるデータ型と返されるデータ型に注意してください オペランド式が評価するものは異なります。データ型に準拠した結果に変換されます。 例: 文字列の乗算は実行できません。「a」*「b」は不正ですが、可能な場合は、JavaScript が式を正しい型に変換するため、式「3」*「5」となります。 JavaScript は文字列を数値に変換し、その結果は文字列「15」ではなく数値 15 になります。

2. オペランドに応じて異なるパフォーマンス:

String string = string (connected); "a" "b" = "ab" "5" "6" = "11"

文字列番号 = (数値に変換された文字列) 文字列 (連結); "a" 5 = "a5" 5 は文字列 "1" 0 = "10" に変換されます

数値数値 = 数値(追加) 5 5 = 10。

3. 演算子の結合性に注意してください。一部の演算子は左から右に結合します。また、一部の演算子は右から左に結合します。

例: w = a b c は w = (a b) c と等価です。

は w = ---b は w = - ( - ( -b ) ) と等価です。 a = b = c は、w= ( a = ( b = c ))

単項演算子、代入演算子、および三項演算子の結合性は右から左です。

JavaScriptここではオペレーターの紹介をさせていただきますので、皆様の日常生活のお役に立てれば幸いです。

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