JavaScript の演算子

算術演算子

const x = 7;
const y = 2;

console.log(x + y); // 9
console.log(x - y); // 5
console.log(x * y); // 14
console.log(x / y); // 3.5

console.log(x % y); // 1

console.log(x ** y); // 49

console.log(-x); // -7

console.log(+x); // 7
console.log(+"-7"); // -7
console.log(+true); // 1

x++; // x に 1 を加える前にその値を返す
++x; // x に 1 を加えた後にその値を返す

y--; // x から 1 を引く前にその値を返す
--y; // x から 1 を引いた後にその値を返す

代入演算子

x = y; // 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 ^= y; // x = x ^ y

x |= y; // x = x | y

x &&= y; // x && (x = y)

x ||= y; // x || (x = y)

x ??= y; // x ?? (x = y)

比較演算子

const value = 7;

7 == value; // true
8 == value; // false
"7" == value; // true

7 === value; // true
8 === value; // false
"7" === value; // false

7 != value; // false
8 != value; // true
"7" != value; // false

7 !== value; // false
8 !== value; // true
"7" !== value; // true

6 > value; // false
7 > value; // false
8 > value; // true

6 >= value; // false
7 >= value; // true
8 >= value; // true

6 < value; // true
7 < value; // false
8 < value; // false

6 <= value; // true
7 <= value; // true
8 <= value; // false

ビット演算子

// ビット論理演算子
// 9 = 0000 1001(2 進数)
// 3 = 0000 0011(2 進数)

// AND
console.log(9 & 3); // 1
// OR
console.log(9 | 3); // 11
// XOR
console.log(9 ^ 3); // 10
// NOT
console.log(~9); // -10

// ビットシフト演算子
// 9 = 0000 1001(2 進数)
// 3 = 0000 0011(2 進数)

// 左シフト
console.log(9 << 3); // 72
// 符号維持右シフト
console.log(9 >> 3); // 1
// ゼロ埋め右シフト
console.log(9 >>> 3); // 1

論理演算子

// AND(&&)
console.log(true && true); // true
console.log(true && false); // false
console.log(false && true); // false
console.log(false && false); // false

// OR(||)
console.log(true || true); // true
console.log(true || false); // true
console.log(false || true); // true
console.log(false || false); // false

// NOT(!)
console.log(!true); // false
console.log(!false); // true

文字列演算子

console.log("Be" + "a" + "Sky" + "Blue"); // BeaSkyBlue

三項演算子

const result = point >= 70 ? "OK!" : "NG!";

単項演算子

delete

delete はオブジェクトのプロパティ、配列の要素を削除します。

typeof

typeof は指定した値の型を返します。

typeof 7; // number
typeof "7"; // string
typeof new Date(); // object

関係演算子

in

in は指定したプロパティが指定のオブジェクトに存在する場合は true を返す。

const fruits = ["apple", "banana", "kiwi"];

// 配列のインデックス
0 in fruits; // true
1 in fruits; // true
2 in fruits; // true
3 in fruits; // false
"apple" in fruits; // false

// プロパティ
length in fruits; // true
"PI" in Math; //true

instanceof

instanceof は指定したオブジェクトの型が指定したとおりであれば true を返す。

const fruits = ["apple", "banana", "kiwi"];

fruits instanceof Array; // true
fruits instanceof Date; // false

参考