メモ: C++ プログラマーの方へ:Rogue Wave Script 式の構文は、C/C++ 構文と非常に似ています。 |
カテゴリー | 演算子 |
シーケンス | , |
代入 | = += -= *= /= %= <<= >>= >>>= &= ^= |= |
条件 | ?: |
論理和 | | | |
論理積 | && |
ビット論理和 | | |
ビット排他的論理和 | ^ |
ビット論理積 | & |
等価 | == != |
関係 | < <= > >= |
ビット・シフト | << >> >>> |
加算、減算 | + - |
乗算、除算 | * / % |
否定、インクリメント、typeof | ! ~ - ++ -- typeof |
呼び出し | ( ) |
新規 | new |
プロパティー | . [ ] |
構文 | 効果 |
変数 | 変数の値を返します。 変数の構文については、識別子の構文を参照してください。 変数が存在しない場合はエラーが表示されます。 これは、値が、有効で未定義の値を返す undefined value の既存の変数への参照と同じではありません。 with ステートメントの本文で使った場合、変数リファレンスは現在のデフォルト値のプロパティーとして検索されます。 |
構文 | 効果 |
値.名前 | 例: str.length getCar().name 名前は有効な識別子でなければならないため、有効な識別子構文のないプロパティーにアクセスするためにこの形式を使うことはできません。 たとえば、array の数値プロパティーに次のようにアクセスすることはできません。 myArray.10 // Illegal syntax これらのプロパティーでは、2 つ目の構文を使います。 |
値[名前] | この場合の名前がプロパティー名を呼び出す評価された式であることを除いて、先述の構文と同じです。 例: str["length"] // Same as str.length getCar()[getPropertyName()] myArray[10] myArray[i+1] |
構文 | 効果 |
変数=式 | 式 の値を変数 に代入します。 変数 が存在しない場合、グローバル変数として作成されます。 例: x = y+1 式全体で 式 の値を返します。 |
値.名前=式 値[名前] = 式 | 式 の値を特定のプロパティーに代入します。 例: car.name = "Ford" myArray[i] = myArray[i]+1 式全体で 式 の値を返します。 |
構文 | 対象の演算子 |
++X | X = X+1 |
X++ | ++X と同じですが、新しい値ではなく X の初期値を返します。 |
--X | X = X-1 |
X-- | --X と同じですが、新しい値ではなく X の初期値を返します。 |
X += Y | X = X + Y |
X -= Y | X = X - Y |
X *= Y | X = X * Y |
X /= Y | X = X / Y |
X %= Y | X = X % Y |
X <<= Y | X = X << Y |
X >>= Y | X = X >> Y |
X >>>= Y | X = X >>> Y |
X &= Y | X = X & Y |
X ^= Y | X = X ^ Y |
X |= Y | X = X | Y |
構文 | 効果 |
関数(引数1, ..., 引数n) | 特定の引数を使って関数を呼び出し、呼び出し結果を返します。 例: parseInt(field) writeln("Hello ", name) doAction() str.substring(start, start+length) 通常、関数は変数リファレンスまたはプロパティー・アクセスのいずれかですが、任意の式の場合もあります。式は function valueを呼び出すか、またはエラーになります。 例: // Calls the function in callbacks[i] callbacks[i](arg) // Error: a string is not a function "foo"() |
構文 | 効果 |
this | メソッドで参照される場合、現在の呼び出しオブジェクトを返します。コンストラクターで参照される場合は、初期化中のオブジェクトを返します。 その他の場合はグローバル・オブジェクトを返します。 例は、オブジェクトを参照してください。 |
arguments | 現在の関数の引数が含まれる arrayを返します。 関数の外で使われるとエラーになります。 たとえば、次の関数はすべての引数の合計を返します。 function sum() { var res = 0 for (var i=0; i<arguments.length; i++) res = res+arguments[i] return res } コール sum(1, 3, 5) は 9 を返します。 |
構文 | 効果 | |
new コンストラクター(引数1, ..., 引数n) | 特定の引数 を使って コンストラクター を呼び出し、作成した値を返します。 例: new Array() new MyCar("Ford", 1975) 通常、コンストラクターは変数リファレンスですが、任意の式の場合もあります。 例: new ctors[i](arg) // Invokes constructor ctors[i] | |
typeof value | 以下のように、値のタイプを表す文字列を返します。 | |
値のタイプ | typeof value の結果 | |
"オブジェクト" | ||
"ブール型" | ||
"日付" | ||
"関数" | ||
"オブジェクト" | ||
"数値" | ||
"オブジェクト" | ||
"文字列" | ||
"未定義" | ||
delete 変数 | グローバル変数である変数を削除します。 変数 の値は削除されませんが、グローバル環境から変数 が除去されます。 例: myVar = "Hello, world" // Create the global variable myVar delete myVar writeln(myVar) // Signals an error because myVar is undefined 変数がローカル変数の場合、エラーになります。変数 が既知の変数でない場合は何も起きません。 式全体で true valueを返します。 C/C++ プログラマーの方へ:この演算子は、変数やプロパティーではなくオブジェクトを削除するために使われる C++ の演算子とはまったく違う意味になります。 | |
delete 値.名前 delete 値[名前] | 値に名前プロパティーが含まれない場合、この式は何も行いません。 このプロパティーが存在しない場合は、削除できずエラーになります。 値がオブジェクトでない場合、エラーになります。 式全体で true valueを返します。 | |
式1 、式2 | 式1 と 式2 を逐次評価し、式2 の値を返します。 式1 の値は無視されます。 一般的に、この演算子は for ループ内で、単一式が予測される複数の式を評価するためによく使われます。 for (var i=0, j=0; i<10; i++, j+=2) { writeln(j, " is twice as big as ", i); } |
構文 | 効果 |
- X X + Y X - Y X * Y X / Y X % Y | 算術演算子 |
X == Y X != Y | 等価演算子 new Array(10) == new Array(10) −> false var a = new Array(10); a == a −> true |
X > Y X >= Y X < Y X <= Y | 関係演算子 |
~ X X & Y X | Y X ^ Y X << Y X >> Y X >>> Y | ビット演算子 数値演算子を参照してください。 |
! X X || Y X && Y condition ? X : Y | 論理演算子 論理演算子を参照してください。 |