前の言葉
JavaScriptには46の演算子があります。算術演算子、リレーショナル演算子、ビット演算子、および前述の論理演算子に加えて、多くの演算子がいます。この記事では、条件付きオペレーター、コンマオペレーター、割り当てオペレーター、()、およびボイドオペレーターを紹介します
条件付き演算子
条件付き演算子は、JavaScriptで唯一の3成分演算子(3つのオペランド)であり、「三元演算子」と直接呼ばれることもあります。通常、この演算子は「?:」と書かれています。もちろん、このオペレーターには3つのオペランドがあり、最初のオペランドは「?」の前であるため、コードでは省略されません。 and ':'、そして3番目のオペランドは後のものです: '
variable = boolean_expression? true_value:false_value;
基本的に、これは、変数変数の値を決定するboolean_expressionの評価の結果に基づいています。評価の結果が真の場合、変数変数変数にtrue_valueが割り当てられます。評価結果がfalseの場合、変数変数にfalse_value_valueが割り当てられます
条件付き演算子のオペランドは任意のタイプであり、最初のオペランドはブール値として扱われ、それが真である場合、2番目のオペランドが計算され、その計算結果が返されます。それ以外の場合、最初のオペランドが誤った値である場合、3番目のオペランドが計算され、その計算結果が返されます。 2番目と3番目のオペランドは常にそのうちの1つを計算し、両方を同時に実行することは不可能です。
実際、ステートメントを使用すると同じ効果がもたらされる場合、「?:」オペレーターは速記の形式のみを提供します。 「?:」の典型的なアプリケーションシナリオは、変数が定義されているか(および意味のある真実値がある)かどうかを判断し、定義がある場合はそれを使用し、定義がない場合はデフォルト値を使用します。
Greeting = 'Hello' +(username?username: 'there');
これは、IFステートメントを使用して以下のコードと同等ですが、明らかに上記のコードはより簡潔です。
グリーティング= 'hello'; if(username)greeting += username; else greeting += 'there';
三元条件式は、if ... elseステートメントと同じ式効果がありますが、2つの間には大きな違いがあります。場合...他のものは声明であり、返品値がない場合。三元条件式は式であり、戻り値を持っています。したがって、返品値が必要な場合は、三元条件式のみを使用できます。
console.log(true? 't': 'f');
上記のコードでは、console.logメソッドのパラメーターは式でなければならず、元条件式のみを使用できます。
コンマオペレーター
コンマオペレーターはバイナリ演算子であり、そのオペランドは任意のタイプにすることができます。最初に左のオペランドを計算し、次に右オペランドを計算し、最終的に右オペランドの値を返します。カンマオペレーターを使用して、声明で複数の操作を実行する
i = 0、j = 1、k = 2; //計算結果は2であり、これは基本的にi = 0以下のコードと同等です。 j = 1; k = 2;
コンマオペレーターは、多くの場合、複数の変数を宣言するために使用されます
var inum1 = 1、inum = 2、inum3 = 3;
コンマオペレーターの最も一般的なシナリオは、通常、複数のループ変数を備えたループにあります。
// forループの最初のコンマはvarステートメントの一部です
コンマオペレーターは割り当てにも使用することもでき、割り当てに使用すると、コンマオペレーターは常に式の最後の項目を返します。
var num =(1,2,3,4,5); console.log(num); // 5
[注]ブラケットを削除し、エラーを報告します
割り当てオペレーター
単純な割り当て演算子は、等記号 '='で表されます。これは、等記号の右に値を等記号の左側に変数または属性に割り当てます。
i = o; ox = 1;
'='演算子は、左のオペランドがlvalue:変数またはオブジェクト属性(または配列要素)であることを期待しています。その右オペランドは、あらゆるタイプの任意の価値を使用できます。割り当て式の値は、適切なオペランドの値です
割り当て式は通常非常に単純ですが、割り当て式を含む複雑な式が表示される場合があります。たとえば、次のように、割り当てとリレーショナルオペレーターを1つの式に配置できます。
(a = b)== 0
これを行う場合は、「=」演算子と「==」演算子の違いをはっきりと知る必要があります。 '='の優先度は非常に低いです。通常、割り当てステートメントの値が長い式で使用される場合、正しい操作の順序を確保するために括弧を追加する必要があります。
割り当て演算子の結合性は右から左にあります。つまり、複数の割り当て演算子が式に表示される場合、操作順序は右から左にあります。したがって、次の方法で複数の変数を割り当てることができます。
i = j = k = 0; // 3つの変数を0に初期化します
JavaScriptは、11の複合割り当て演算子も提供します。これらの複合割り当て演算子はすべて最初に指定された操作であり、次に得られた値を左の変数に返します。
[注]これらのオペレーターを設計する目的は、割り当て操作を簡素化することであり、それらを使用してもパフォーマンスの改善はもたらされません。
Total + = sales_tax; // Total = Total + sales_taxに相当します。
演算子の例は+= a+= ba = a+b- = a- = ba = ab*= a*= ba = a*b/= a/= ba = a/b%= a%= ba = a%b << = a << = ba = a << b >> = a >> = ba = a a&= ba = a&b | = a | = ba = a | b^= a^= ba = a^b
ほとんどの場合、表現は次のとおりです。
op = b
ここでOPはオペレーターを表し、この式は次の式に相当します
a = op b
最初の行では、式Aが1回計算され、2行目では式Aが2回計算されます。 Aが副作用(関数呼び出しや割り当て操作など)を持つ式が含まれている場合にのみ、2つは不平等になります
data [i ++]*= 2; data [i ++] = data [i ++]*2;
ブラケットオペレーター
ブラケット演算子には2つの用途があります。式が括弧内に配置されている場合、関数は評価することです。機能が続く場合、関数は関数を呼び出すことです。
式を括弧内に置き、式の値を返します
console.log((1)); //1console.log(('a ')); //'a'console.log((1+2)); // 3オブジェクトを括弧内に置くと、オブジェクトの値、つまりオブジェクト自体が返されます
var o = {p:1}; console.log((o)); // object {p:1}括弧内に関数を置くと、関数自体が返されます。括弧が関数に従っている場合、それは関数、つまり関数を評価することを意味します
function f(){return 1;} console.log((f)); // function f(){return 1;} console.log(f()); // 1括弧の目的は評価することであるため、ステートメントが括弧内に配置されている場合、ステートメントが値を返さないため、エラーが報告されます
console.log(var a = 1); // syntaxerror:予期しないtoken varconsole.log((var a = 1)); // syntaxerror:予期しないトークンvar
ボイドオペレーター
voidは単一のオペレーターです。オペランドの前に表示されます。オペランドは任意のタイプにすることができます。オペランドは通常どおり計算されますが、計算結果は無視され、未定義は返されます。 voidはオペランドの値を無視するため、オペランドに副作用がある場合はvoidを使用してプログラムをよりセマンティックにします
console.log(void 0); // undefinedConsole.log(void(0)); // 未定義
【関数1は未定義を交換します
未定義はキーワードではないため、IE8-O-Browserおよびより高いバージョン関数の範囲で書き換えられます。したがって、未定義はvoid 0に置き換えることができます
var undefined = 10; console.log(undefined); // ie8-itはブラウザの下で10で、未定義関数t(){var undefined = 10; console.log(undefined);} console.log(t()); //すべてのブラウザの下で10です【ロール2】クライアントURL
この演算子は、クライアントURL -javaScript:urlで最も一般的に使用されています。副作用のある式はURLに記述できますが、voidを使用すると、ブラウザはこの式の計算結果が表示されないようにします。たとえば、void演算子はhtmlコードの<a>タグでよく使用されます
<a href = "javascript:void window.open();">新しいウィンドウを開きます</a>
【効果3】ブロックデフォルトイベント
デフォルトのイベントをブロックする方法は、返品値をfalseに設定することです。
//一般的な書き込み方法<a href = "http://example.com" onclick = "f(); return false;"> text </a>
void演算子を使用して、上記の執筆方法を置き換えます
<a href = "javascript:void(f())"> text </a>
上記の記事では、javaScriptオペレーター(条件、コンマ、割り当て、()、およびvoidオペレーターがすべて私が共有するコンテンツと簡単に説明します。参照を提供できることを願っています。wulin.comをもっとサポートできることを願っています。