— y2sunlight 2020-10-20
+, -, *, /, %, ++, --
非数とは文字列またはオブジェクト
x = 1; y = x++; // y=1,x=2 y = ++x; // y=3, x=3 a = 3; x = (a++) * (2+a); // x=18, a=4
=, OP= OP・・・+, -, *, /, % (算術) &, |, <<, >>, >>> (ビット)
let data = [1, 2, 3, …]; let [x, x2, x3, …] = data;
let data = {id:1, name:'iwata', …}; let {id:user_id, name:user_name, …} = data; console.log(user_id, user_name);
==, !=, <, <=, >, >= ===, !===, → 同値演算子(型と値が同じ) ?: → 条件演算子
&&, ||, !
falsyの値 ・・・ (空文字), 0, null, undefined Nan
'0'はfalsyでない(※PHPと違う)
msg = msg || 'Default Message'; msg = msg ? msg : 'Default Message'; msg = msg ?? 'Default Message'; // [ES2020]
&, |, ^, ~, <<(論理シフト), >>(算術), >>>(論理シフト)
演算子 | 説明 | |
,(カンマ) | 制御文 | |
delete | 配列要素、オブジェクトプロパティ、宣言のない変数の削除 data1 = 1; delete data1; 削除できる var data2 = 1; delete data2; 削除できない | |
instanceof | オブジェクト | |
new | オブジェクト | |
typeof | データ型を返す(基本型:number, string 参照型:object) ※参照型を詳しく調べたい時はinstanceof演算子を使う | |
void | DOM |
data1 = 1; delete data1; // 削除できる var data2 = 1; delete data2; // 削除できない
優先順位 | 演算子 |
---|---|
高 | カッコ類 [],() |
インクリメント/デクリメント、単項演算子 | |
算術 【高】*, /, % 【低】+, - | |
シフト | |
比較 【高】<, ⇐, >=, > 【低】==, !=, ===, !== | |
ビット【高】&, ^, |【低】 | |
論理 【高】&&, ||【低】 | |
条件 | |
代入 | |
低 | カンマ |
優先順位が同じ時の演算の順序
左結合 ・・・ 左 → 右に演算する(算術、比較、論理、ビットなど)
例
a + b - c
右結合 ・・・ 右 → 左に演算する(単項、代入、条件など)
例
a = b = c;
!!!a;