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