Skip to content

Commit ac7724e

Browse files
committed
評価の流れに関する図を追加
1 parent fb66080 commit ac7724e

File tree

6 files changed

+17
-2
lines changed

6 files changed

+17
-2
lines changed
186 KB
Loading

docs/1-trial-session/05-expressions/index.mdx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@ document.write(3 + 4 * 5);
4343

4444
`3 + 4 * 5`の<Term>評価</Term>は、先に`4 * 5`が<Term>評価</Term>されて`20`になり、次に`3 + 20`が<Term>評価</Term>されることにより、`23`という<Term>値</Term>となると考えることができます。
4545

46+
![3 + 4 * 5の評価](./operator-priority-evaluation.png)
47+
4648
## いろいろな<Term>演算子</Term>
4749

4850
{/* prettier-ignore */}
@@ -67,6 +69,8 @@ document.write("Hello" + 1 + 2);
6769

6870
`+`は、両辺が<Term>数値</Term>の場合のみ加算<Term>演算子</Term>として振る舞い、片方が<Term>数値</Term>で片方が<Term>文字列</Term>の場合は<Term>数値</Term>を<Term>文字列</Term>に変換してから<Term>文字列</Term>結合<Term>演算子</Term>として機能します。このため、最終的な<Term>式</Term>全体の<Term>評価</Term>結果は前者が`"7Hello"`、後者が`"Hello12"`となるのです。
6971

72+
![3 + 4 + "Hello"と"Hello" + 1 + 2の評価](./addition-operator-evaluation.png)
73+
7074
### 代表的な演算子
7175

7276
| 演算子 | 意味 ||
68.7 KB
Loading
57.4 KB
Loading

docs/1-trial-session/07-boolean/index.mdx

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,9 @@ const canRideRollerCoasters = age >= 10 && height >= 120; // true
8383

8484
次のコードは何を表示するでしょうか。そしてそれはなぜでしょうか。
8585

86+
- JavaScript で、数値と論理値に比較<Term>演算子</Term>を適用すると、`true``1`として、`false``0`として比較されます。
87+
- `=`は代入演算子です。代入<Term>演算子</Term>の<Term>式</Term>が<Term>評価</Term>されると、右辺の<Term>値</Term>になります。
88+
8689
{/* prettier-ignore */}
8790
```javascript
8891
let takaoHeight = 599;
@@ -94,8 +97,16 @@ document.write(takaoHeight = everestHeight);
9497

9598
<ViewSource url={import.meta.url} path="_samples/weird-comparison" />
9699

97-
- JavaScript で、数値と論理値に比較<Term>演算子</Term>を適用すると、`true``1`として、`false``0`として比較されます。
98-
- `=`は代入演算子です。代入<Term>演算子</Term>の<Term>式</Term>が<Term>評価</Term>されると、右辺の<Term>値</Term>になります。
100+
<Answer>
101+
102+
`<`の結合規則は左から右なので、`takaoHeight < everestHeight < fujiHeight``(takaoHeight < everestHeight) < fujiHeight`と解釈されることになります。
103+
まず`takaoHeight < everestHeight`が<Term>評価</Term>され、`true`になります。次に`true < fujiHeight`が<Term>評価</Term>されます。`true``1`として比較されるため、結果は`true`になります。
104+
105+
![takaoHeight < everestHeight < fujiHeightの評価](./weird-comparison-evaluation.png)
106+
107+
`takaoHeight = everestHeight`の評価結果は、右辺の評価結果である`8849`になります。
108+
109+
</Answer>
99110

100111
:::
101112

182 KB
Loading

0 commit comments

Comments
 (0)