このページの2つのバージョン間の差分を表示します。
次のリビジョン | 前のリビジョン | ||
js:basic:operator [2020/10/20 15:11] tanaka 作成 |
js:basic:operator [2021/04/12 14:13] (現在) tanaka [その他の演算子] |
||
---|---|---|---|
行 3: | 行 3: | ||
--- // | --- // | ||
- | === 算術演算子 === | + | ===== 算術演算子 |
< | < | ||
行 9: | 行 9: | ||
</ | </ | ||
- | === 代入演算子 === | + | * 数 + 数 → 数 |
+ | * 非数 + 数 → 文字 | ||
- | === 比較演算子 === | + | 非数とは文字列またはオブジェクト |
- | === 論理演算子 | + | <code javascript> |
+ | 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・・・+, | ||
+ | &, | ||
+ | </ | ||
+ | |||
+ | ==== 分割代入 ==== | ||
+ | < | ||
+ | |||
+ | === 配列 === | ||
+ | <code javascript> | ||
+ | let data = [1, 2, 3, …]; | ||
+ | let [x, x2, x3, …] = data; | ||
+ | </ | ||
+ | |||
+ | === オブジェクト === | ||
+ | <code javascript> | ||
+ | let data = {id:1, name:' | ||
+ | let {id: | ||
+ | console.log(user_id, | ||
+ | </ | ||
+ | \\ | ||
+ | |||
+ | ===== 比較演算子 ===== | ||
+ | |||
+ | < | ||
+ | ==, !=, <, <=, >, >= | ||
+ | ===, !===, → 同値演算子(型と値が同じ) | ||
+ | ?: → 条件演算子 | ||
+ | </ | ||
+ | \\ | ||
+ | |||
+ | ===== 論理演算子 ===== | ||
+ | |||
+ | < | ||
+ | &&, ||, ! | ||
+ | </ | ||
+ | |||
+ | falsyの値 ・・・ (空文字), | ||
+ | ' | ||
+ | \\ | ||
+ | ==== ショートカット演算(短絡演算)==== | ||
+ | |||
+ | <code javascript> | ||
+ | msg = msg || ' | ||
+ | msg = msg ? msg : ' | ||
+ | msg = msg ?? ' | ||
+ | </ | ||
+ | \\ | ||
+ | |||
+ | ===== ビット演算子 ===== | ||
+ | |||
+ | < | ||
+ | &, |, ^, ~, << | ||
+ | </ | ||
+ | \\ | ||
+ | |||
+ | ===== その他の演算子 ===== | ||
+ | |||
+ | |演算子|説明| | ||
+ | |, | ||
+ | |delete|配列要素、オブジェクトプロパティ、宣言のない変数の削除 \\ data1 = 1; \\ delete data1; // 削除できる \\ var data2 = 1; \\ delete data2; // 削除できない | | ||
+ | |instanceof|'' | ||
+ | |new|'' | ||
+ | |typeof|データ型を返す(基本型:number, | ||
+ | |void||'' | ||
+ | |||
+ | === deleteの例 === | ||
+ | <code javascript> | ||
+ | data1 = 1; | ||
+ | delete data1; | ||
+ | var data2 = 1; | ||
+ | delete data2; | ||
+ | </ | ||
+ | \\ | ||
+ | |||
+ | ===== 優先順位 ===== | ||
+ | |||
+ | ^優先順位^演算子^ | ||
+ | | 高 |カッコ類 [],()| | ||
+ | | |インクリメント/デクリメント、単項演算子| | ||
+ | | |算術 【高】*, /, % 【低】+, -| | ||
+ | | |シフト| | ||
+ | | |比較 【高】<, | ||
+ | | |ビット【高】< | ||
+ | | |論理 【高】&&, | ||
+ | | |条件| | ||
+ | | |代入| | ||
+ | | 低 |カンマ| | ||
+ | |||
+ | ===== 結合則 ===== | ||
+ | |||
+ | 優先順位が同じ時の演算の順序 | ||
+ | |||
+ | **左結合** ・・・ 左 → 右に演算する(算術、比較、論理、ビットなど) | ||
+ | |||
+ | 例 | ||
+ | <code javascript> | ||
+ | a + b - c | ||
+ | </ | ||
+ | |||
+ | - a + b | ||
+ | - 〔1.の結果〕+ c | ||
+ | |||
+ | **右結合** ・・・ 右 → 左に演算する(単項、代入、条件など) | ||
+ | |||
+ | 例 | ||
+ | <code javascript> | ||
+ | a = b = c; | ||
+ | </ | ||
+ | |||
+ | - b = c | ||
+ | - a = 〔1.の結果〕 | ||
+ | |||
+ | <code javascript> | ||
+ | !!!a; | ||
+ | </ | ||
- | === 結合則 === | + | - !a |
+ | - !〔1.の結果〕 | ||
+ | - !〔2.の結果〕 | ||