演算子
演算子は、プログラムにおけるデータや変数(オペランド)の代入や四則計算、比較などといったデータ操作を行うためシンボルです。JavaScriptはオブジェクト指向ですので、オブジェクトに関する演算子も含まれています。
算術演算子
算術演算子は四則計算(加減乗除)と余り、Increment(1つずつ足す)、Decrement(1つずつ引く)です。四則計算の結果が和、差、積、商となります。
+ | 加、Addition |
- | 減、Subtraction |
* | 乗、Multiplication |
/ | 除、Division |
% | 余り、Modulus |
++ | Increment |
-- | Decrement |
代入演算子
結果を左辺に代入します。
= | y=x xの値をyに代入 |
+= | y+=x y=y+x |
-= | y-=x y=y-x |
*= | y*=x y=y*x |
/= | y/=x y=y/x |
%= | y%=x y=y%x |
比較演算子
比較演算子は、左右の値を比較し同じならtrueまたはビット1を立てる。左右違うならfalse、0(ゼロ)とする。
== | 等しい |
!= | 等しくない(等しくないことがtrue) |
=== | 値とデータタイプが等しい |
!== | 値が等しくないかタイプが等しくない |
> | より大きい(左辺が右辺より大きい) |
< | より小さい(左辺が右辺より小さい) |
>= | 以上(左辺が右辺以上) |
<= | 以上(左辺が右辺以下) |
論理演算子
2つの値から、論理積(AND)、論理和(OR)、論理否定(NOT)を計算します。
複数を連結でき、優先順位がある(NOT→AND→OR?)。
&& | 論理積(AND) |
|| | 論理和(OR) |
! | 論理否定(NOT) |
論理積(AND)は1*1=1,1*0=0,0*1=0,0*0=0、どちらもtrueでtrue。論理和(OR)は1+1=1,1+0=1,0+1=1,0+0=0、どちらかtrueでtrue。
ビット演算子
JavaScriptは32bitで計算されます。そのために結果は32bitで計算され数値として出力されます。例では簡単に4bitとしています。
& | AND ( 0101 AND 0001 ---> 0001 ) |
| | OR ( 0101 AND 0001 ---> 0101 ) |
^ | XOR ( 0101 ^ 0001 ---> 0100 ) |
~ | NOT ( ~0001 ---> 1110 ) |
<< | Left shift ( 0101 << 1 ---> 1010 ) |
>> | Right shift ( 0101 >> 1 ---> 0010 ) |
文字列演算子
文字列を連結する方法です。
+ | 'abc' + 'def' ---> 'abcdef' |
+= | x = 'abc'; x += 'def'; ---> 'abcdef' |
特殊演算子
簡潔な比較演算子である条件演算子、データタイプを返す typeof 演算子、関数定義を宣言する function 演算子、なんら処理を実行しないようにする void 演算子の解説です。
条件演算子、三項演算子
条件(condition)、trueの返り値、falseの返り値の3つのオペランドをとる演算子です。この演算子は、if文の簡易としてよく用いられます。
(condition ? ifTrue : ifFalse)
typeof 演算子
変数または値のデータタイプを取得できます。
typeof 'abc' //'string'
function 演算子
関数を定義するための演算子です。関数定義を参照して下さい。
var onefunction = function( param1, param2 ) { ... };
void 演算子
引数を評価し未定義として返します。引数以外の実行は行われませんので、Event処理を実行したくない場合によく用いられます。
<a href="javascript:void(0);"> リンクを実行しない </a>
オブジェクトに関する演算子
this 演算子 (this)
オブジェクト自身を示すスコープです。関数の呼び出され方でスコープするオブジェクトが変わりますので思った動作と違う場合があります。
function City( cityName, population ) = { this.cityName = cityName; this.population = population; }
new 演算子
new 演算子は、コンストラクター関数を持ったオブジェクトまたは定義したオブジェクトのインスタンスを生成します。
function City( cityName, population ) = { this.cityName = cityName; this.population = population; } const city001 = new City("San Francisco", 85.3);
super 演算子
super 演算子は、オブジェクトの親の関数を取得します。
in 演算子
in 演算子は、オブジェクトにプロパティが存在しているかをbool値で取得します。
var city = [{cityName:"San Francisco", population:85.3}, {cityName:"New York", population:818.6}, {cityName:"Tokyo", population:927.3}]; "cityName" in city // 'true' "length" in city // 'true' (length is an Array property) "San Francisco" in city // 'false' (not property)
delete 演算子
delete 演算子は、オブジェクトからプロパティを削除するのに使います。プロパティの削除するのと同時に値も削除しますので、エラーの原因になるかもしれませんので注意が必要です。
var city = [{cityName:"San Francisco", population:85.3, color:"blue"}, {cityName:"New York", population:818.6 color:"green"}, {cityName:"Tokyo", population:927.3, color:"red"}]; delete city.color;
instanceof 演算子
instanceof 演算子は、オブジェクトが引数のインスタンス(データ型)かをbool値で取得できます。
var city = ["San Francisco", "New York", "Tokyo"]; city instanceof Array; // 'true' city instanceof String; // 'false'