このページの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.の結果〕 | ||