Skip to content

Commit ef14ff9

Browse files
committed
javascript 0,1
1 parent fb64984 commit ef14ff9

56 files changed

Lines changed: 138 additions & 98 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

public/docs/javascript/0-intro/2-0-environment.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ JavaScriptはどこで動くのでしょうか? かつてはブラウザの中
1515
* **Webブラウザ (クライアントサイド):**
1616

1717
* DOM (Document Object Model) 操作により、HTML/CSSを動的に書き換えます。
18-
* `window` オブジェクトがグローバルスコープです
18+
* `window` [[オブジェクト]]がグローバルスコープです
1919
* セキュリティ上の制約(サンドボックス)があり、ローカルファイルへの直接アクセスなどは制限されています。
2020

2121
* **Node.js (サーバーサイド):**

public/docs/javascript/0-intro/4-1-repl.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,5 @@ undefined
2222
3
2323
```
2424

25-
`undefined``console.log` 関数の戻り値が表示されています。
25+
> [!TIP]
26+
> [[`undefined`]]`console.log` 関数の戻り値が表示されています。

public/docs/javascript/0-intro/4-3-browser.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,6 @@ question:
2626

2727
ブラウザの開発者ツール(Consoleタブ)にメッセージが表示され、ポップアップウィンドウが出れば成功です。
2828

29-
my.code(); のチュートリアルでは主にJavaScriptの文法や基本的な機能を中心に扱います。
29+
> [!NOTE]
30+
> my.code(); のチュートリアルでは主にJavaScriptの文法や基本的な機能を中心に扱います。
3031
HTMLやCSSとあわせたウェブアプリケーション開発の基礎については [ut.code(); Learn](https://learn.utcode.net) で学ぶことができます。

public/docs/javascript/1-basics/1-0-variable.md

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,11 @@ question:
88
- varを使うべきではないとありますが、varを使うとどのような悪いことが起こるのですか?
99
- 巻き上げ(Hoisting)とは、具体的にどのような現象ですか?
1010
- '`console.log("let output:", blockScoped);` がReferenceErrorになるのはなぜですか?'
11+
term:
12+
- let
13+
- const
14+
- var
15+
- 変数
1116
---
1217

1318
## 変数宣言: let, const, var
@@ -20,8 +25,9 @@ ES6(2015年)で導入された `const` と `let` は、C++やJava、C\#な
2025
* **const**: 再代入不可能な変数を宣言します。定数だけでなく、再代入しない変数はすべてこれで宣言します。
2126
* **let**: 再代入可能な変数を宣言します。ループカウンタや、状態が変わる値に使用します。
2227

23-
24-
なぜ `var` を使うべきではないのでしょうか。それは `var`**関数スコープ**であり、意図しない変数の共有や「巻き上げ(Hoisting)」によるバグを引き起こしやすいからです。
28+
> [!WARNING]
29+
> もう一つの変数を宣言する古いキーワードとして `var` があります。
30+
> `var`**関数スコープ**であり、意図しない変数の共有や「巻き上げ(Hoisting)」によるバグを引き起こしやすいため、現在は `const``let` を使うことが推奨されています。
2531
2632
以下のコードで、スコープの違いを確認してみましょう。
2733

public/docs/javascript/1-basics/2-0-primitive-type.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,14 @@ question:
66
- プリミティブ型とは、ざっくり言うとどういう値のことですか?
77
- プリミティブ型がイミュータブル(変更不可)というのは、どういう状態を指しますか?
88
- SymbolやBigIntは、通常の開発でどのくらいの頻度で使うものですか?
9+
term:
10+
- プリミティブ
11+
- プリミティブ型
912
---
1013

1114
## データ型: プリミティブ型
1215

13-
JavaScriptは動的型付け言語であり、変数は特定の型に紐付きませんが、値自体は型を持っています。JavaScriptの値は大きく分けて「プリミティブ型」と「オブジェクト(参照)型」に分類されます。
16+
JavaScriptは動的型付け言語であり、[[変数]]は特定の型に紐付きませんが、値自体は型を持っています。JavaScriptの値は大きく分けて「プリミティブ型」と「オブジェクト(参照)型」に分類されます。
1417

1518
プリミティブ型はイミュータブル(変更不可)であり、以下の7種類が存在します。
1619

@@ -19,7 +22,7 @@ JavaScriptは動的型付け言語であり、変数は特定の型に紐付き
1922
3. **Boolean**: `true` または `false`
2023
4. **undefined**: 「値が未定義である」ことを表す型
2124
5. **null**: 「値が存在しない」ことを意図的に示す型
22-
6. **Symbol**: 一意で不変な識別子(主にオブジェクトのプロパティキー用途
25+
6. **Symbol**: 一意で不変な識別子(主に[[オブジェクト]]のプロパティキー用途
2326
7. **BigInt**: `Number`型では表現できない巨大な整数を扱う型(末尾に `n`
2427

2528
この章では、まず最もよく使う `String` / `Number` / `Boolean` / `undefined` / `null` を順に見ていきます。`Symbol``BigInt` は用途が限定的なため、ここでは「プリミティブ型の一種」であることだけ押さえれば十分です。

public/docs/javascript/1-basics/2-1-string.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,18 @@ question:
66
- シングルクォートとダブルクォートで文字列を囲むことの違いは何ですか?
77
- テンプレートリテラルは、どんな場面で使うと便利ですか?
88
- テンプレートリテラルの `${}` の中に計算式を書けますか?
9+
term:
10+
- 文字列
11+
- String
12+
- string
13+
- テンプレートリテラル
914
---
1015

1116
### 文字列(String)
1217

1318
JavaScriptの文字列は、シングルクォート (`'`) またはダブルクォート (`"`) で作成します。
1419

15-
また、バッククォート (`` ` ``) で囲む**テンプレートリテラル**を使うと、変数や式を文字列に埋め込めます。文字列の連結(`+`)より読みやすくなることが多いため、こちらを使うのが一般的です。
20+
また、バッククォート (`` ` ``) で囲む**テンプレートリテラル**を使うと、[[変数]]や式を文字列に埋め込めます。文字列の連結(`+`)より読みやすくなることが多いため、こちらを使うのが一般的です。
1621

1722
```js-repl
1823
> const name = "Ada";

public/docs/javascript/1-basics/2-2-number.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ question:
66
- JavaScriptで整数と小数を区別しないのは、どういう意味ですか?
77
- 除算や剰余など、基本的な計算はどのように書けば良いですか?
88
- 小数計算で誤差が出ることがあるのはなぜですか?
9+
term:
10+
- 数値
11+
- Number
12+
- number
913
---
1014

1115
### 数値(Number)
@@ -35,4 +39,5 @@ undefined
3539
0.30000000000000004
3640
```
3741

38-
`0.1 + 0.2` のような小数計算で誤差が出るのは、JavaScriptが数値を内部的に2進数の浮動小数点として扱うためです。
42+
> [!TIP]
43+
> `0.1 + 0.2` のような小数計算で誤差が出るのは、JavaScriptが数値を内部的に2進数の浮動小数点として扱うためです。

public/docs/javascript/1-basics/2-3-boolean.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,12 @@ level: 3
55
question:
66
- Boolean型はどんな場面で使いますか?
77
- '`true` / `false` は文字列の `"true"` / `"false"` と何が違いますか?'
8+
term:
9+
- 真偽値
10+
- Boolean
11+
- boolean
12+
- "true"
13+
- "false"
814
---
915

1016
### 真偽値(Boolean)

public/docs/javascript/1-basics/2-4-undefined-null.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,16 @@ question:
66
- undefinedとnullは、どう使い分けるのが良いですか?
77
- 変数を宣言しただけの状態がundefinedになるのはなぜですか?
88
- '`typeof null` が `''object''` になるのは本当に正しいのですか?'
9+
term:
10+
- "undefined"
11+
- "null"
912
---
1013

1114
### undefined と null
1215

1316
他言語経験者が最初に混乱しやすいのが、この `undefined``null` の違いです。
1417

15-
- **undefined**: JavaScriptエンジンが「値がまだない」ことを示すときに現れます(例: 宣言だけして代入していない変数)。
18+
- **undefined**: JavaScriptエンジンが「値がまだない」ことを示すときに現れます(例: 宣言だけして代入していない[[変数]])。
1619
- **null**: プログラマが「ここには値がない」と明示したいときに代入します。
1720

1821
```js-repl
@@ -28,4 +31,5 @@ undefined
2831
'object'
2932
```
3033

31-
`typeof null``'object'` になるのは、JavaScript初期から残っている歴史的な仕様です。`null` 自体はオブジェクトではなく、プリミティブ型の値です。
34+
> [!INFO]
35+
> `typeof null``'object'` になるのは、JavaScript初期から残っている歴史的な仕様です。`null` 自体は[[オブジェクト]]ではなく、[[プリミティブ型]]の値です。

public/docs/javascript/1-basics/3-0-object.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,19 @@ question:
66
- オブジェクト(参照型)とプリミティブ型は、メモリ上で具体的にどのように違うのですか?
77
- JavaScriptでは関数もオブジェクトとありますが、これはどういうメリットがありますか?
88
- キーと値のペアの集合、というのは具体的にどんなものですか?
9+
term:
10+
- オブジェクト
911
---
1012

1113
## データ型: オブジェクト型
1214

13-
プリミティブ以外のすべての値は**オブジェクト(参照型)**です。これらはメモリ上のアドレス(参照)として扱われます。
15+
[[プリミティブ]]以外のすべての値は**オブジェクト(参照型)**です。これらはメモリ上のアドレス(参照)として扱われます。
1416

1517
主なオブジェクト型には以下があります。
1618

1719
* **Object**: キーと値のペアの集合(辞書、ハッシュマップに近い)。詳しくは[[./5]]で解説します。
1820
* **Array**: 順序付きリスト。詳しくは[[./7]]で解説します。
19-
* **Function**: JavaScriptでは関数もオブジェクトであり、変数に代入したり引数として渡すことができます(第一級関数)。
21+
* **Function**: JavaScriptでは関数もオブジェクトであり、[[変数]]に代入したり引数として渡すことができます(第一級関数)。
2022

2123
```js-repl
2224
> // Object: キーと値のペアの集合

0 commit comments

Comments
 (0)