◆数値と定数の表記について
JavaScriptは以下の種類のものを扱うことが出来ます。
・数 値:0, 1996など
・文字列:ダブルクォーテーションで囲まれた文字列("Fred"や"234")
・論 理:true(真)またはfalse(偽)
特殊なものとしてはnullがあります。
また値が設定されていない変数を参照するとランタイムエラーが発生します。
◆論理式
評価する値が2つあり、どちらか1つの値を取ることが出来ます。この文法は以下のようになります。
(condition) ? val1 : val2
もしconditionの値がture(真)であれば値はvarl1となり、そうでない場合はval2になります。論理式は式の途中でも記述することが出来ます。例えば
status = (age >= 18) ? "adult" : "minor"
という場合、変数ageの値が18以上であれば変数statusにはadultという文字列が入ります。そうでない場合はminorという文字が入ります。
◆演算オペレーターについて(=, +=, -=, *=, /=)
=は右の式の値を左の変数等に代入します。この時、=の左側に演算オペレーターを付加する事ができます。この場合左側の変数には、左側の変数と右側の変数を演算したものが代入されます。なお以下に示してある例は左側と右側の式の結果は同じになります。
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
◆演算オペレーター
以下にオペレーター一覧を示します。なお、x = 12, y=4とします。またビット演算、論理演算は32ビット長で行われます。
加 算:+ (例:z = x + y → 16)
減 算:− (例:z = x - y → 8)
乗 算:* (例:z = x * y → 48)
除 算:/ (例:z = x / y → 3)
剰 余:% (例:z = x % y → 0)
インクリメント:++ (例:y = ++x → y=13,x=13:代入前に加算)
インクリメント:++ (例:y = x++ → y=12,x=13:代入後に加算)
デクリメント:−− (例:y = --x → y=11,x=11:代入前に減算)
デクリメント:−− (例:y = x-- → y=12,x=11:代入後に減算)
符号反転:− (例:y = -x → y = -12)
論理積:& (例:15 & 9 → 9 (1111 & 1001 = 1001))
論理和:| (例:15 | 9 → 15 (1111 | 1001 = 1111))
排他的論理和:^ (例:15 ^ 9 → 6 (1111 ^ 1001 = 0110))
左シフト:<< (例:9<<2 → 36 (1001<<=100100))
符号付き右シフト:>> (例:9>>2 → 2 (1001>> = 10))
符号無し右シフト:>>>(例:19>>>2 → 4 (10011>>> = 100))
◆ロジカルオペレーター
ロジカルオペレーターは、2つの値または式を評価しtrue(真)またはfalse(偽)のどちらかの値を返します。以下に各オペレーターを示します。
・And (&&)
文法:式1 && 式2
式1と式2がtrueの場合、trueになります。そうでない場合はfalseになります。
・Or (||)
文法:式1 || 式2
式1または式2がtrueの場合、trueになります。そうでない場合falseになります。
・Not (!)
文法:!式
式がtrueの場合false、falseの場合trueになります。
◆比較オペレーター(= =, >, >=, <, <=,!=)
比較オペレーターはそれぞれの式を比較してtrueまたはfalseを返します。オペレーターには以下のものがあります。
==:式が等しい
!=:式が等しくない
> :左が大きい
>=:左が等しいか大きい
< :右が大きい
<=:右が等しいか大きい
◆文字列演算オペレーター
文字列の演算オペレーターには+(連結)が用意されています。これは左側の文字列と右側の文字列を連結します。例えば"my " + "string" は"my string" になります。
また以下のようにも記述する事が出来ます(mystringにはalphaという文字列が入っているものとします)。
mystring += "bet"
この結果はalphabetという文字列がmystringに入ります。
◆オペレーターの優先順位
以下にオペレーターの優先順位を示します。なお下にいくほど優先順位が高くなっています。
コンマ: ,
算術: = += -= *= /= %= <<=>>= >>>= &= ^= |=
2項演算: ?:
論理和:||
論理積:&&
ビット演算/論理和: |
ビット演算/排他的論理和:^
ビット演算/論理積:&
等価、不等価: === == !=
比較:<= >=
ビットシフト:<<>> >>>
加減算:+ -
乗除算:* / %
符号反転、デクリメント、インクリメント:! ~ - ++ --
括弧:() [] .