【JavaScript】演算子
算術演算子
+, -, *, /
const x = 6,
y = 2
x + y //加算 8
x - y //減算 2
x * y //乗算 12
x / y //除算 3
これらは四則演算を行うための演算子であり、それぞれ加算(+
)、減算(-
)、乗算(*
)、除算(/
)に該当する。
%
const x = 5,
y = 2
x % 2 //剰余 1
%
は剰余に該当する。例では5 / 2 = 2 余り 1
のため1
となる。
**
const x = 5,
y = 2
x ** y //べき乗 25
**
はべき乗に該当する。例では5の2乗
のため25
となる。
インクリメント、デクリメント
x++ //後置インクリメント
x-- //後置デクリメント
++x //前置インクリメント
--x //前置デクリメント
インクリメントは、変数に対し1
を加算する処理であり、変数の前後どちらかに++
を付加します。
前方に付加するとインクリメントは式の最初に評価され、後方に付加すると式の最後に評価されます。
const x = 10
console.log(++x) //11 インクリメントが先に評価される
x = 10
console.log(x++) //10 インクリメントが後に評価される
console.log(x) //11
一方デクリメントは、変数に対し1
を減算する処理であり、--
を付加します。
その他の性質はインクリメントと同じです。
関係演算子
>, <, >=, <=
const x = 10
x > 5 //xは5より大きい → true
x < 5 //xは5より小さい → false
x >= 5 //xは5以上 → true
x <= 5 //xは5以下 → false
これらは 2 つの値の大小関係を比較し、その結果をBoolean
で返します。
通常Number
の比較で使用しますが、String
、Array
の比較も可能です。しかし、利用頻度はかなり低いです。
in
const obj = { a: 1, b: 2 }
'a' in obj //true
'c' in obj //false
const ary = ['a', 'b', 'c']
1 in ary //true
3 in ary //false
'a' in ary //false
in
は、指定したキー(プロパティ)がオブジェクトに存在する場合にtrue
を返します。
Array
の場合は指定したインデックスに要素が存在する場合にtrue
を返します。
等価演算子
==, !==
const x = 1
x == 1 //true
x == 2 //false
x == '1' //true
x == true //true
x !== 1 //false
x !== 2 //true
x !== '1' //false
x !== true //false
==
は 2 つの値を比較し、同じであればtrue
を返します。
別の型の比較でも、型変換をして同じ値であればtrue
を返します。
!==
は 2 つの値が違う場合にtrue
を返します。
===
const x = 1
x === 1 //true
x === 2 //false
x === "1" //false
x === true //false
x !=== 1 //false
x !=== 2 //true
x !=== "1" //true
x !=== true //true
===
は同じく 2 つの値を比較しますが、型を含めて同じ場合にtrue
を返します。
!===
は値、型のどちらかが違う場合にtrue
を返します。
厳密な判定を行いたい場合はこちらを使用します。
論理演算子
&&
const x = 5
x > 0 && x <= 5 //true
x > 0 && x < 5 //false
&&
は論理積を意味し、すべての条件がtrue
の場合にtrue
を返します。
||
const x = 5
x < 0 || x >= 5 //true
x < 0 && x > 5 //false
||
は論理和を意味し、どれか 1 つの条件がtrue
の場合にtrue
を返します。
単項演算子
+, -
const x =
'1' +
x - //1
x + //-1
true - //1
true //-1
+
は数値以外の変数、リテラルを数値に変換します。
-
は変換した数値に対して-1
をかけます。
!
!true //false
!false //true
!
は否定を表します。
代入演算子
let x = 10
x += 5 //x = x + 5
代入演算子はこれまでにも使用しているように、変数に対してリテラルを設定する際に使用します。
また、+=
のように他の演算子を組み合わせて使用することができます。
三項演算子
const x = 10
const y = x >= 10 ? 'A' : 'B' //10
三項演算子は、ある条件の結果から設定する値を分岐したい場合に使用します。
?
と:
を使用し、条件式 ? 真の場合の値 : 偽の場合の値
の形で指定します。
ただし、複雑な条件や複数条件で使用する場合は、可読性が下がるため、通常のif
文による条件分岐を使用します。
NULL 合体
const x
//以下y, zは同じ意味
const y = x ?? 0
const z = x === undefined ? x : 0
NULL 合体は、値がundefined
またはnull
の場合に、代わりの値を設定するために使用します。
値が設定されている場合はその値が設定されます。