式;
例:
a = b;
// 演算子 = の動作によって、a 変数に 変数b が代入される
func();
// 演算子 ( ) の動作によって、func が関数として呼び出されるが、関数の戻り値
// は捨てられる
1 + 3;
// + 演算子の動作によって、1 と 3 が加算されるが、結果は捨てられる(実際はこ
// の式は意味を持たないので実行すらされない)
if は、右側にあるものを評価した結果が真の場合のみに、左側にあるものを評価する演算子です。例:
a=b if b!=0; // b が 0 でなければ a に b を代入
, (カンマ) は、左にあるものを評価して、つぎに右側にあるものを評価します。それ以外の事は行いません。演算子全体としては、右側にあるものを評価した結果になります。カンマが続けて複数書かれた場合は、左側にあるものから順に評価されます。例:
c = (a=1, b=2); // a=1, b=2 が評価され、c には 2 が代入される
a=1, b=2, c=3; // a=1, b=2, c=3 の順に評価される
= <-> &= |= ^= -= += %= /= \= *= ||= &&= >>= <<= >>>=例:
a = 0; // a に 0 を代入
a = b = c = 0; // c , b, a の順に 0 を代入
<-> 演算子はいれかえを行います。まず、左側のものを評価し、次に右側のものを評価します。そのあと、右側を評価した結果を左側に代入し、左側を評価した結果を右側に代入します。演算子の結果を得ることはできません。演算子= の形式をとっており、A 演算子= B と記述された場合は、A = A 演算子 B という意味になります。演算子全体の値としては、演算の結果の値となります。? : は3項演算子です。A ? B : C の形式で書くと、A を評価し、真だった場合に B を評価し、C を無視します。偽だった場合は C を評価し、B を無視します。演算子全体の値としては、B または C の評価された方の値になります。例:
a = b==0 ? c : b; // b が 0 だったら a に c を、 b が 0 でなかったら a に b を代入
b==0 ? (a=c) : (a=b); // 上と同じ意味
(a ? b : c ) = d; // a が真ならば b に、a が偽ならば c に、 d を代入 (左辺値として使用した例)
|| は、左側にあるものをまず評価し、真ならば右側にあるものを無視して、演算子全体の結果としては真になります。左側にあるものを評価した結果が偽だった場合、右側にあるものを評価し、その真偽の結果が演算子全体の結果となります。&& は、左側にあるものをまず評価し、偽ならば右側にあるものを無視して、演算子全体の結果としては偽になります。左側にあるものを評価した結果が真だった場合、右側にあるものを評価し、その結果が演算子全体の結果となります。| は、ビットごとの論理 OR をとります。左側にあるもの、右側にあるものの順に評価し、その結果を整数として、ビットごとの OR をとったものが演算子全体の値となります。^ は、ビットごとの論理 XOR をとります。左側にあるもの、右側にあるものの順に評価し、その結果を整数として、ビットごとの XOR をとったものが演算子全体の値となります。& は、ビットごとの論理 AND をとります。左側にあるもの、右側にあるものの順に評価し、その結果を整数として、ビットごとの AND をとったものが演算子全体の値となります。== != === !==は同定演算子の類です。== 演算子== 演算子は、左側にあるものを先に評価し、次に右側にあるものを評価します。両者が一致すれば演算子全体で真、一致しなければ演算子全体で偽になります。両辺の演算の結果、型が異なれば適切に変換されてから比較されます。たとえば、-1 == '-1' は真になります。!= 演算子!= 演算子は、== 演算子の真偽が逆になったものです。=== 演算子=== 演算子は識別比較演算子と呼ばれ、== 演算子と同じですが、型の変換は行われず、型までもが一致しなければ真になりません。!== 演算子!== 演算子は、=== 演算子の真偽が逆になったものです。< > <= >= は比較演算子の類です。< 演算子< 演算子は、左側にあるものを先に評価し、右側にあるものを次に評価します。左側を評価した結果が右側を評価した結果よりも小さければ真になり、そうでなければ偽になります。> 演算子> 演算子は、左側にあるものを先に評価し、右側にあるものを次に評価します。右側を評価した結果が左側を評価した結果よりも小さければ真になり、そうでなければ偽になります。<= 演算子<= 演算子は、左側にあるものを先に評価し、右側にあるものを次に評価します。左側を評価した結果が右側を評価した結果よりも小さいか等しいならば真になり、そうでなければ偽になります。>= 演算子>= 演算子は、左側にあるものを先に評価し、右側にあるものを次に評価します。右側を評価した結果が左側を評価した結果よりも小さいか等しいならば真になり、そうでなければ偽になります。% / \ * は、それぞれ剰余算、除算、整数除算、乗算演算子です。% 演算子% 演算子は、先に左側を評価し、次に右側を評価します。そのあと、左側を右側で割った剰りが演算子全体の値になります。値は両方とも整数として扱われます。/ 演算子/ 演算子は、先に左側を評価し、次に右側を評価します。そのあと、左側を右側で割った値が演算子全体の値になります。値は実数として扱われます。\ 演算子\ 演算子は、/ 演算子のように除算を行いますが、値は整数として扱われます。* 演算子* 演算子は、先に左側を評価し、次に右側を評価します。そのあと、左側を右側で掛けた値が演算子全体の値になります。値は実数として扱われます。instanceof は例外 )。! 演算子! 演算子は、論理否定演算子です。右側にあるものを評価したものの真偽を逆にしたものが演算子全体の値となります。~ 演算子~ 演算子は、ビット否定演算子です。右側にあるものを評価したものを整数とし、ビットごとの否定 ( 1→0、0→1 ) を行ったものが演算子全体の値となります。-- 演算子-- 演算子は、前置デクリメント演算子です。右側にあるものから1を減じ、減じた後の値が演算子全体の値となります。++ 演算子++ 演算子は、前置インクリメント演算子です。右側にあるものに1を加算し、加算した後の値が演算子全体の値となります。new 演算子new 演算子は、右側にある関数評価式を関数呼び出しではなくオブジェクトの作成を行わせるようにします。invalidate 演算子invalidate 演算子は、右側にあるものを評価し、その結果のオブジェクトを無効化します。isvalid 演算子isvalid 演算子は、右側、あるいは左側にあるものを評価し、その結果のオブジェクトが有効な場合に true、 無効な場合に false になります。演算子を評価対象の前に置いても、後ろに置いても同じ意味になります。delete 演算子delete 演算子は、右側に書いたオブジェクトのメンバ、あるいはローカル変数を消去します。消去に成功すれば true、失敗すれば false になります。typeof 演算子typeof 演算子は、右側にあるものを評価し、その型によって以下の文字列となります : void:"void"、整数:"Integer"、実数:"Real"、オブジェクト:"Object"、文字列:"String"、オクテット列:"Octet" 。ただし、オブジェクトのメンバを指定した場合で、メンバが無かった場合は "undefined" になります。# 演算子# 演算子は、右側にあるものを評価し、文字列として最初の一文字の文字コードを演算子全体の値とします。$ 演算子$ 演算子は、右側にあるものを評価し、その結果を文字コードとして、それが表す文字一文字を演算子全体の値とします。+ 演算子+ 演算子は、右側にあるものを評価します。右側にあるものが実数や整数ならば何もしません。それ以外の場合は、実数や数値への変換を試み、その結果が演算子全体の結果となります。文字列を数値に変換しようとする場合は、変換に失敗した場合は、例外を発生せず、 0 になります。小数点を含むような実数表現であれば実数に、そうでなければ整数に変換されます。文字列の先頭に 0x や 0b 、0 があれば、それぞれ 16 進数、2 進数、8 進数として解釈されます。- 演算子- 演算子は、左側にあるものを評価し、その結果を数値として、正負を逆にしたものを演算子全体の結果とします。& 演算子& 演算子は、右側に書いたオブジェクトのメンバへのアクセスを、プロパティハンドラを介さない、プロパティオブジェクトそのものへのアクセスに変更します。たとえば、propobj = &obj.prop; では、obj のメンバプロパティ prop のプロパティハンドラは起動されず、メンバプロパティ prop のプロパティオブジェクトそのものへの参照が propobj に代入されます。* 演算子* 演算子は、右側に書いたオブジェクトのプロパティハンドラを動作させます。右側にはプロパティオブジェクトを表す式を書かなければなりません。たとえば、*propobj = 1; は、プロパティオブジェクトである propobj の setter ハンドラを呼び出し、1 を代入します。instanceof 演算子instanceof 演算子は、左側にあるものを評価し、次に右側にあるものを評価します。右側にはクラス名となる、文字列になるものを書き、左側にあるものが、そのクラスのインスタンスであれば true、そうでなければ false になります。( ) 演算子( ) 演算子は、演算の優先順位を変更します。または、関数呼び出しを行います。[ ] 演算子[ ] 演算子は、間接メンバ選択演算子です。A [ B ] と書かれた場合、A を先に評価し、 B を次に評価します。B を文字列として、そのメンバ名を A から探し、演算子全体としてはそのメンバへのアクセスとなります。左辺値として使われた場合は、オブジェクト内にメンバ B を、もし無ければ新規に作成する、という作用も伴います。. 演算子. 演算子は、直接メンバ選択演算子です。A.B と書かれた場合、A を評価します。B を A から探し、演算子全体としてはそのメンバへのアクセスとなります。左辺値として使われた場合は、オブジェクト内にメンバ B を、もし無ければ新規に作成する、という作用も伴います。. 演算子の左側が省略された場合は、with ステートメントの外側ならば global オブジェクト内のメンバを、with ステートメントの内側ならばその with で示されたオブジェクトのメンバを参照します。++ 演算子++ 演算子は、後置インクリメント演算子です。左にあるものに1を加算し、演算子全体としては加算する前の、左にあるもの、になります。-- 演算子-- 演算子は、後置デクリメント演算子です。左にあるものから1を減じ、演算子全体としては減じる前の、左にあるもの、になります。! 演算子! 演算子は、式評価演算子です。左にあるものを評価した結果を文字列として、それを式文字列として解釈します。結果は、その式文字列を解釈して評価した結果になります。式は this コンテキスト (この演算子を使った位置での this) 上で動作します。incontextof 演算子incontextof 演算子は、左にあるものを先に評価し、次に右にあるものを評価します。左にあるものを評価した結果をオブジェクトとして、そのオブジェクトのコンテキスト部分を、右にあるものを評価した結果と置き換えたものが演算全体の結果となります。int 演算子real 演算子string 演算子