Skip to content

Commit 846a889

Browse files
Copilotna-trium-144
andcommitted
Fix JavaScript Chapter 1 insufficient explanations
Co-authored-by: na-trium-144 <100704180+na-trium-144@users.noreply.github.com> Agent-Logs-Url: https://github.com/ut-code/my-code/sessions/56c810b0-44e8-4be4-a188-42cf1404ae6b
1 parent d236faa commit 846a889

4 files changed

Lines changed: 60 additions & 35 deletions

File tree

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

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,31 @@ JavaScriptは動的型付け言語であり、変数は特定の型に紐付き
2222
5. **null**: 「値が存在しない」ことを意図的に示す型。
2323
6. **Symbol**: 一意で不変な識別子。オブジェクトのプロパティキーなどに使われます。
2424
7. **BigInt**: `Number`型では表現できない巨大な整数を扱います(末尾に `n` をつけます)。
25+
26+
```js-repl
27+
> // String: シングルクォートまたはダブルクォートで囲む
28+
> const language = "JavaScript";
29+
undefined
30+
> language
31+
'JavaScript'
32+
> // テンプレートリテラル(バッククォート)を使うと変数を文字列に埋め込める
33+
> const version = 2015;
34+
undefined
35+
> `${language} ES${version}`
36+
'JavaScript ES2015'
37+
> // Number: 整数も小数も同じ型
38+
> const price = 1980;
39+
undefined
40+
> const tax = 0.1;
41+
undefined
42+
> price * (1 + tax)
43+
2178.0000000000002
44+
> // Boolean
45+
> const isActive = true;
46+
undefined
47+
> typeof isActive
48+
'boolean'
49+
> // BigInt: 末尾に n をつける
50+
> 9007199254740991n + 1n
51+
9007199254740992n
52+
```

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

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,23 @@ question:
1414

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

17-
* **Object**: キーと値のペアの集合(辞書、ハッシュマップに近い)。
18-
* **Array**: 順序付きリスト。
17+
* **Object**: キーと値のペアの集合(辞書、ハッシュマップに近い)。詳しくは5章で解説します。
18+
* **Array**: 順序付きリスト。詳しくは7章で解説します。
1919
* **Function**: JavaScriptでは関数もオブジェクトであり、変数に代入したり引数として渡すことができます(第一級関数)。
20+
21+
```js-repl
22+
> // Object: キーと値のペアの集合
23+
> const user = { name: "Alice", age: 25 };
24+
undefined
25+
> user.name
26+
'Alice'
27+
> user["age"]
28+
25
29+
> // Array: 順序付きリスト(インデックスは 0 から始まる)
30+
> const colors = ["Red", "Green", "Blue"];
31+
undefined
32+
> colors[0]
33+
'Red'
34+
> colors.length
35+
3
36+
```
Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,19 @@
11
---
22
id: javascript-basics-practice1
3-
title: '練習問題1: テンプレートリテラルと型変換'
3+
title: '練習問題1: テンプレートリテラル'
44
level: 3
55
question:
6-
- テンプレートリテラルを使って自己紹介文を作る具体的なコード例を見せてもらえますか?
7-
- 論理和演算子 `||` と Null合体演算子 `??` は、どちらを使っても良いのですか?違いはありますか?
8-
- 年齢がnullまたはundefinedの場合に「不明」と表示させる部分について、コードのヒントが欲しいです。
6+
- テンプレートリテラルの `${}` の中に計算式を書けますか?
7+
- バッククォートの中でバッククォート自体を使いたい場合はどうすれば良いですか?
98
---
109

11-
### 練習問題1: テンプレートリテラルと型変換
10+
### 練習問題1: テンプレートリテラル
1211

13-
ユーザーの年齢(数値)と名前(文字列)を受け取り、自己紹介文を作成する関数を作成してください。
14-
ただし、年齢が `null` または `undefined` の場合は「不明」と表示するようにしてください。論理和演算子 `||` または Null合体演算子 `??` を活用してみましょう。
12+
`itemName` という変数に商品名(文字列)、`price` という変数に価格(数値)、`stock` という変数に在庫数(数値)をそれぞれ代入してください。その後、テンプレートリテラルを使って「商品: [商品名], 価格: [価格]円, 在庫: [在庫数]個」という形式の文字列を作り、`console.log()` で出力するコードを書いてみましょう。
1513

1614
```js:practice2_1.js
17-
// 以下の関数を完成させてください
18-
function introduce(name, age) {
19-
// ここにコードを記述
20-
}
21-
22-
console.log(introduce("Tanaka", 25));
23-
console.log(introduce("Sato", null));
2415
```
2516

2617
```js-exec:practice2_1.js
27-
My name is Tanaka and I am 25 years old.
28-
My name is Sato and I am 不明 years old.
18+
(出力例) 商品: 高性能マウス, 価格: 4500円, 在庫: 2
2919
```
Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,20 @@
11
---
22
id: javascript-basics-practice2
3-
title: '練習問題2: オブジェクトの操作と参照'
3+
title: '練習問題2: constとオブジェクトの変更'
44
level: 3
55
question:
6-
- なぜ `newList = originalList` だと `originalList` も変更されてしまうのですか?
7-
- 「参照コピー」とはどういう状態ですか?
8-
- スプレッド構文 `...` を使って、この問題をどう解決すれば良いですか?
9-
- 配列をコピーする他の方法はありますか?
6+
- constで宣言したのにプロパティを変更できるのはなぜですか?
7+
- プロパティの変更と、変数への再代入の違いは何ですか?
108
---
119

12-
### 練習問題2: オブジェクトの操作と参照
10+
### 練習問題2: constとオブジェクトの変更
1311

14-
以下のコードにはバグ(意図しない挙動)があります。
15-
`originalList` の内容を保持したまま、新しい要素を追加した `newList` を作成したいのですが、現状では `originalList` も変更されてしまいます。
16-
スプレッド構文 `...` などを使い、`originalList` を変更せずに `newList` を作成するように修正してください。
12+
`const` を使って、`name`(商品名・文字列)と `price`(価格・数値)を持つ商品オブジェクト `product` を作成してください。
13+
次に、`price` を別の値に変更し、さらに `stock`(在庫数・数値)プロパティを新たに追加してから、`console.log()` でオブジェクトの内容を出力してみましょう。
1714

1815
```js:practice2_2.js
19-
const originalList = ["Apple", "Banana"];
20-
21-
// 参照コピーになっているため originalList も変わってしまう
22-
const newList = originalList;
23-
newList.push("Orange");
24-
25-
console.log("Original:", originalList); // ["Apple", "Banana"] と出力させたい
26-
console.log("New:", newList); // ["Apple", "Banana", "Orange"] と出力させたい
2716
```
2817

2918
```js-exec:practice2_2.js
19+
(出力例) { name: 'コーヒー', price: 550, stock: 30 }
3020
```

0 commit comments

Comments
 (0)