js.svg

【JavaScript】演算子

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の比較で使用しますが、StringArrayの比較も可能です。しかし、利用頻度はかなり低いです。

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の場合に、代わりの値を設定するために使用します。

値が設定されている場合はその値が設定されます。