Foundation > Rogue Wave Script 言語リファレンス >
 
本セクションは、次のような構成になっています。
*Rogue Wave Script 式
*リテラル
*変数リファレンス
*プロパティー・アクセス
*代入演算子
*関数呼び出し
*特殊キーワード
*特殊演算子
*その他の演算子
Rogue Wave Script 式
式は、リテラル、変数、特殊キーワードおよび演算子の組み合わせです。
メモ: C++ プログラマーの方へ:Rogue Wave Script 式の構文は、C/C++ 構文と非常に似ています。
演算子の先行によって、式を評価する際に適用される演算子の順番が決まります。 演算子先行は、括弧を使って変更することができます。
以下の表では、Rogue Wave Script の演算子を先行が低い方から順番に列挙します。
Rogue Wave Script 演算子先行 
カテゴリー
演算子
シーケンス
,
代入
=   +=   -=   *=   /=   %=   <<=   >>=   >>>=  &=   ^=   |=
条件
?:
論理和
| |
論理積
&&
ビット論理和
|
ビット排他的論理和
^
ビット論理積
&
等価
==   !=
関係
<   <=   >   >=
ビット・シフト
<<   >>   >>>
加算、減算
+   -
乗算、除算
*   /   %
否定、インクリメント、typeof
!   ~   -   ++   --   typeof
呼び出し
( )
新規
new
プロパティー
.   [ ]
リテラル
リテラルは、次を表現します。
*数値、例: 12 14.5 1.7e-100
*文字列、例: "Ford" "Hello world\n"
*ブール型true または false
*ヌル値: null.
数値と文字列のリテラル構文の詳細については、数値リテラル構文および 文字列リテラル構文を参照してください。
変数リファレンス
変数リファレンスの構文を、以下の表にまとめます。
Rogue Wave Script 変数構文
構文
効果
変数
変数の値を返します。 変数の構文については、識別子の構文を参照してください。
変数が存在しない場合はエラーが表示されます。 これは、値が、有効で未定義の値を返す undefined value の既存の変数への参照と同じではありません。
with ステートメントの本文で使った場合、変数リファレンスは現在のデフォルト値のプロパティーとして検索されます。
プロパティー・アクセス
値プロパティーにアクセスするための構文には、以下の 2 つがあります。
Rogue Wave Script プロパティー・アクセス構文 
構文
効果
.名前
名前プロパティーの値、またはこのプロパティーが定義されていない場合は undefined valueを返します。 名前の構文については、識別子の構文を参照してください。
例:
str.length

getCar().name
名前は有効な識別子でなければならないため、有効な識別子構文のないプロパティーにアクセスするためにこの形式を使うことはできません。 たとえば、array の数値プロパティーに次のようにアクセスすることはできません。
myArray.10 // Illegal syntax
これらのプロパティーでは、2 つ目の構文を使います。
[名前]
この場合の名前がプロパティー名を呼び出す評価された式であることを除いて、先述の構文と同じです。
例:
str["length"] // Same as str.length
getCar()[getPropertyName()]
myArray[10]
myArray[i+1]
代入演算子
= 演算子を使って、変数またはプロパティーに新しい値を代入することができます。
Rogue Wave Script 代入演算子構文 
構文
効果
変数=
の値を変数 に代入します。 変数 が存在しない場合、グローバル変数として作成されます。
例:
x = y+1
式全体で の値を返します。
.名前=
[名前] =
の値を特定のプロパティーに代入します。
にそのようなプロパティーがなく、プロパティーが array または object の場合はそのプロパティーが作成されます。そうでない場合はエラーになります。
例:
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
関数呼び出し
関数を呼び出すための演算子の構文は以下のとおりです。
Rogue Wave Script 関数呼び出し構文 
構文
効果
関数(引数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"()
特殊キーワード
使用可能な特殊キーワードは以下のとおりです。
Rogue Wave Script 特殊キーワード 
構文
効果
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 を返します。
特殊演算子
特殊演算子は以下のとおりです。
Rogue Wave Script 特殊演算子構文 
構文
効果
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 [名前]
object からプロパティーである名前を削除します。
名前プロパティーが含まれない場合、この式は何も行いません。 このプロパティーが存在しない場合は、削除できずエラーになります。 がオブジェクトでない場合、エラーになります。
式全体で 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); }
その他の演算子
その他の演算子については、それらが機能するデータ・タイプのセクションで説明します。 その他の演算子は以下のとおりです。
その他の Rogue Wave Script 演算子 
構文
効果
- X
X
+ Y
X
- Y
X
* Y
X
/ Y
X
% Y
算術演算子
これらの演算子では、一般的な算術演算を実行します。 また、+ 演算子を使って文字列を連結することもできます。 数値演算子および文字列演算子を参照してください。
X == Y
X
!= Y
等価演算子
これらの演算子を使って、数値と文字列を比較することができます。数値演算子および文字列演算子を参照してください。
datesarraysobjectsなどの他のタイプの値については、XY が同一の場合のみ == 演算子が true を返します。 例:
  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
論理演算子
論理演算子を参照してください。

Version 6.0
Copyright © 2015, Rogue Wave Software, Inc. All Rights Reserved.