diff --git a/files/ja/learn_web_development/core/scripting/a_first_splash/index.md b/files/ja/learn_web_development/core/scripting/a_first_splash/index.md
index d63971dfc7af47..78c2bebfd165b0 100644
--- a/files/ja/learn_web_development/core/scripting/a_first_splash/index.md
+++ b/files/ja/learn_web_development/core/scripting/a_first_splash/index.md
@@ -1,27 +1,30 @@
---
title: JavaScript の最初の一歩
slug: Learn_web_development/Core/Scripting/A_first_splash
-original_slug: Learn/JavaScript/First_steps/A_first_splash
l10n:
- sourceCommit: 4bddde3e2b86234eb4594809082873fc5bf00ee3
+ sourceCommit: 5b20f5f4265f988f80f513db0e4b35c7e0cd70dc
---
-{{LearnSidebar}}{{PreviousMenuNext("Learn/JavaScript/First_steps/What_is_JavaScript", "Learn/JavaScript/First_steps/What_went_wrong", "Learn/JavaScript/First_steps")}}
+{{LearnSidebar}}
+
+{{PreviousMenuNext("Learn_web_development/Core/Scripting/What_is_JavaScript", "Learn_web_development/Core/Scripting/What_went_wrong", "Learn_web_development/Core/Scripting")}}
JavaScript の理論や何ができるかを学んだところで、実践的なチュートリアルをガイドすることで、単純な JavaScript プログラムを作成するプロセスがどのようなものなのかを解説します。ここでは単純な「数当てゲーム」を手順を追って作っていきます。
- 前提条件: |
-
- HTML と CSS の基本的な理解、 JavaScript とは何かを理解していること。
+ | 前提知識: |
+ HTMLおよびCSS の基礎を理解していること。
|
- 目標: |
+ 学習成果: |
- JavaScript を書く最初の経験をし、少なくとも JavaScript プログラムを書くことの基本的な理解を得ること。
+
+ - プログラマーのように考えられるようになること。
+ - JavaScript で書くことがどんなものかという体験。
+
|
@@ -143,7 +146,7 @@ let resetButton;
- 最後の 2 つの変数は、プレイヤーが予想した回数を記録するため 1 を(プレイヤーが何回予想したかの回数を追跡します)、そしてまだ存在していない(あとで追加する)リセットボタンへの参照を保持します。
> [!NOTE]
-> 変数や定数についてはこのコースの間、[必要な情報を保管する — 変数](/ja/docs/Learn/JavaScript/First_steps/Variables)を始めとして何度も出てきます。
+> 変数や定数についてはこのコースの間、[必要な情報を保管する — 変数](/ja/docs/Learn_web_development/Core/Scripting/Variables)を始めとして何度も出てきます。
### 関数
@@ -159,22 +162,22 @@ function checkGuess() {
関数を実行したい場合には、関数の名前に続いて括弧を書きます。
-それでは試してみましょう。コードを保存してブラウザーを再読み込みしてみてください。[開発者ツールの JavaScript コンソール](/ja/docs/Learn/Common_questions/Tools_and_setup/What_are_browser_developer_tools)を開いてください。そして次のコードを実行します。
+それでは試してみましょう。コードを保存してブラウザーを再読み込みしてみてください。[開発者ツールの JavaScript コンソール](/ja/docs/Learn_web_development/Howto/Tools_and_setup/What_are_browser_developer_tools)を開いてください。そして次のコードを実行します。
```js
checkGuess();
```
-Return/Enter を押した後で、"ここはプレースホルダです"という警告が表示されましたね。呼び出すと、いつでも警告が表示される関数を定義することができました。
+Return/Enter を押した後で、 "I am a placeholder" という警告が表示されましたね。呼び出すと、いつでも警告が表示される関数を定義することができました。
> [!NOTE]
-> 関数については後の記事、[関数 — 再利用可能なコードブロック](/ja/docs/Learn/JavaScript/Building_blocks/Functions)で詳しく学びます。
+> 関数については後の記事、[関数 — 再利用可能なコードブロック](/ja/docs/Learn_web_development/Core/Scripting/Functions)で詳しく学びます。
### 演算子
JavaScript で演算子を使用して値の確認をしたり、計算したり、文字を結合したりなど、いろいろなことができます。
-コードを保存してブラウザーを再読み込みしてみてください。まだ開いていなければ、[開発者ツールの JavaScript コンソール](/ja/docs/Learn/Common_questions/Tools_and_setup/What_are_browser_developer_tools)を開いて、表の「例」の列に書いてある通りに入力してみましょう。例を一つ入力したら、その都度 Return/Enter キーを押してください。結果が表示されるはずです。
+コードを保存してブラウザーを再読み込みしてみてください。まだ開いていなければ、[開発者ツールの JavaScript コンソール](/ja/docs/Learn_web_development/Howto/Tools_and_setup/What_are_browser_developer_tools)を開いて、表の「例」の列に書いてある通りに入力してみましょう。例を一つ入力したら、その都度 Return/Enter キーを押してください。結果が表示されるはずです。
まずは算術演算子の例を見てください。
@@ -332,11 +335,11 @@ function checkGuess() {
- 次に、テンプレートリテラルを使用して、現在の `userGuess` 変数の値を空白と共に `guesses` の段落の末尾に追加しています。
- 次の部分には、確認すべきことがいくつかあります。
- - 最初の `if(){ }` は、プレイヤーの予想が、JavaScript のコードの先頭で設定したランダムな数字を格納した `randomNumber` 変数の値と等しいかどうかを調べています。もし等しければ、プレイヤーは正解し勝ちとなるため、祝福のメッセージを素敵な緑色で表示します。さらに、数字の大小を表示する段落をクリアして、後で説明する `setGameOver()` 関数を実行します。
- - 今度は `else if(){ }` という部分で、ひとつ前の条件に続けて条件を書いています。この条件はユーザーの最後のターンかどうかを調べています。もし最後の回ならば、プログラムは祝福のメッセージの代わりにゲームオーバーメッセージとする以外は、ひとつ前の部分と同じことをします。
- - このコードに連なる最後のブロック (`else { }`) は、前の二つの条件がどちらも真とならなかった場合にのみ実行されます。(つまり、プレイヤーは間違えてはいるものの、予想回数が残っている場合です。) この場合、プレイヤーに予想が間違っていることを伝え、入力された数字が大きいか小さいかを伝えるため、さらなる条件の確認を行います。
+ - 最初の `if (){ }` は、プレイヤーの予想が、JavaScript のコードの先頭で設定したランダムな数字を格納した `randomNumber` 変数の値と等しいかどうかを調べています。もし等しければ、プレイヤーは正解し勝ちとなるため、祝福のメッセージを素敵な緑色で表示します。さらに、数字の大小を表示する段落をクリアして、後で説明する `setGameOver()` 関数を実行します。
+ - 今度は `else if (){ }` という部分で、ひとつ前の条件に続けて条件を書いています。この条件はユーザーの最後のターンかどうかを調べています。もし最後の回ならば、プログラムは祝福のメッセージの代わりにゲームオーバーメッセージとする以外は、ひとつ前の部分と同じことをします。
+ - このコードに連なる最後のブロック (`else { }`) は、前の二つの条件がどちらも真とならなかった場合にのみ実行されます(つまり、プレイヤーは間違えてはいるものの、予想回数が残っている場合です)。この場合、プレイヤーに予想が間違っていることを伝え、その後、予想が正解より高かったか低かったかを調べるために別の条件テストを行い、さらにメッセージを表示して、高かったか低かったかをプレイヤーに伝えます。
-- 最後の 3 行 (26 行目~ 28 行目) は、次の予想の入力を受け取るための準備です。`guessCount` 変数に 1 を加算して、プレイヤーの予想回数を数えます。(`++` はインクリメント演算子で、1 だけインクリメント(増加)します。) そして、入力フォームのテキストフィールドを空にしてからフォーカスを当て、プレイヤーの次の入力に備えます。
+- 最後の 3 行は、次の予想の入力を受け取るための準備です。`guessCount` 変数に 1 を加算して、プレイヤーの予想回数を数えます。(`++` はインクリメント演算子で、1 だけインクリメント(増加)します。) そして、入力フォームのテキストフィールドを空にしてからフォーカスを当て、プレイヤーの次の入力に備えます。
### イベント
@@ -412,7 +415,7 @@ function resetGame() {
上のコードでもう少し詳しく説明しなければならないのは、 [for...of](/ja/docs/Web/JavaScript/Reference/Statements/for...of) ループです。ループはプログラミングにおいてとても重要な概念です。ある条件に達するまで何度も何度もコードを繰り返し実行することができます。
-[ブラウザーの開発者ツールの JavaScript コンソール](/ja/docs/Learn/Common_questions/Tools_and_setup/What_are_browser_developer_tools) をもう一度開いて次のコードを入力してみましょう。
+[ブラウザーの開発者ツールの JavaScript コンソール](/ja/docs/Learn_web_development/Howto/Tools_and_setup/What_are_browser_developer_tools) をもう一度開いて次のコードを入力してみましょう。
```js
const fruits = ["apples", "bananas", "cherries"];
@@ -423,7 +426,7 @@ for (const fruit of fruits) {
どうなりましたか。 `'apples', 'bananas', 'cherries'` の文字列がコンソールに出力されましたね。
-これはループのためです。 `const fruits = ['apples', 'bananas', 'cherries'];` の行は配列を作成します。このモジュールの後半で、[配列の完全ガイド](/ja/docs/Learn/JavaScript/First_steps/Arrays)を読み終えてから作業しますが、とりあえず、配列は項目(この場合は文字列)の集合です。
+これはループのためです。 `const fruits = ['apples', 'bananas', 'cherries'];` の行は配列を作成します。このモジュールの後半で、[配列の完全ガイド](/ja/docs/Learn_web_development/Core/Scripting/Arrays)を読み終えてから作業しますが、とりあえず、配列は項目(この場合は文字列)の集合です。
`for...of` ループは配列でそれぞれの項目を取得し、それに対して JavaScript を実行する方法を提供します。 `for (const fruit of fruits)`という行は次のような意味です。
@@ -464,7 +467,7 @@ guessField.focus();
const guessField = document.querySelector(".guessField");
```
-この参照を得るため、{{domxref("document")}} オブジェクトの{{domxref("document.querySelector", "querySelector()")}} メソッドを使用しています。`querySelector()` はある情報 (必要な要素を選択する [CSS セレクター](/ja/docs/Learn/CSS/Building_blocks/Selectors)) を受け取ります。
+この参照を得るため、{{domxref("document")}} オブジェクトの{{domxref("document.querySelector", "querySelector()")}} メソッドを使用しています。`querySelector()` はある情報 (必要な要素を選択する [CSS セレクター](/ja/docs/Learn_web_development/Core/Styling_basics/Basic_selectors)) を受け取ります。
`guessField` に {{htmlelement("input")}} 要素の参照が得られたので、これでたくさんのプロパティ(基本的にはオブジェクトの内部に保持されている変数のことですが、中には値を変えられないものもあります)とメソッド(基本的にはオブジェクトの内部に保持されている関数のこと)にアクセスできるようになりました。ようやく input 要素のメソッドの一つである `focus()` メソッドを使ってテキストフィールドにフォーカスを当てられます。
@@ -479,7 +482,7 @@ guessField.focus();
少しブラウザーが持っているオブジェクトで遊んでみましょう。
1. まずブラウザーでプログラムを開いてください
-2. 次に[開発者ツール](/ja/docs/Learn/Common_questions/Tools_and_setup/What_are_browser_developer_tools)を開き、 JavaScript コンソールのタブが開いたのを確認します
+2. 次に[開発者ツール](/ja/docs/Learn_web_development/Howto/Tools_and_setup/What_are_browser_developer_tools)を開き、 JavaScript コンソールのタブが開いたのを確認します
3. `guessField` と入力してみてください。するとコンソールに {{htmlelement("input")}} 要素を含む変数が表示されます。また、気づいたと思いますが、コンソールは実行中の環境にある変数名を含んだオブジェクト名を自動的に補完しました!
4. さらに下のように入力してみてください。
@@ -515,8 +518,10 @@ guessField.focus();
ページ内に存在するすべての要素は `style` プロパティを持っていて、そのオブジェクトを介して CSS のインラインスタイルで要素に適用されるすべてのプロパティにアクセスすることができます。これを使うことで、JavaScript から動的に要素の CSS のスタイルを設定できるのです。
-## ここで一息
+## まとめ
これで数当てゲームができました。最後までついて来れましたね!作ったプログラムを動かしてみてください 。(最後のプログラムは[こちらでも遊べます](https://mdn.github.io/learning-area/javascript/introduction-to-js-1/first-splash/number-guessing-game.html)。)もし作ったプログラムが動かなければ、[ソースコード](https://github.com/mdn/learning-area/blob/main/javascript/introduction-to-js-1/first-splash/number-guessing-game.html)と見比べてみてください。
-{{PreviousMenuNext("Learn/JavaScript/First_steps/What_is_JavaScript", "Learn/JavaScript/First_steps/What_went_wrong", "Learn/JavaScript/First_steps")}}
+次のレッスンも役立つかもしれません。そのレッスンでは、 JavaScript コードを記述する際に何が問題となるかを説明し、その過程で「数字当てゲーム」を参照しています。
+
+{{PreviousMenuNext("Learn_web_development/Core/Scripting/What_is_JavaScript", "Learn_web_development/Core/Scripting/What_went_wrong", "Learn_web_development/Core/Scripting")}}
diff --git a/files/ja/learn_web_development/core/scripting/arrays/index.md b/files/ja/learn_web_development/core/scripting/arrays/index.md
index 346de3faa1b670..630252d87d3883 100644
--- a/files/ja/learn_web_development/core/scripting/arrays/index.md
+++ b/files/ja/learn_web_development/core/scripting/arrays/index.md
@@ -1,27 +1,33 @@
---
title: 配列
slug: Learn_web_development/Core/Scripting/Arrays
-original_slug: Learn/JavaScript/First_steps/Arrays
l10n:
- sourceCommit: 4bddde3e2b86234eb4594809082873fc5bf00ee3
+ sourceCommit: 5b20f5f4265f988f80f513db0e4b35c7e0cd70dc
---
-{{LearnSidebar}}{{PreviousMenuNext("Learn/JavaScript/First_steps/Useful_string_methods", "Learn/JavaScript/First_steps/Silly_story_generator", "Learn/JavaScript/First_steps")}}
+{{LearnSidebar}}
+
+{{PreviousMenuNext("Learn_web_development/Core/Scripting/Useful_string_methods", "Learn_web_development/Core/Scripting/Silly_story_generator", "Learn_web_development/Core/Scripting")}}
このモジュールの最後に、配列について見ていきましょう。配列は 1 つの変数名でリスト形式のデータを保持するのに好都合です。ここでは、どう便利なのか、どのように作るのか、そして配列の項目を追加したり削除したり取得したりする方法について学びます。
- 前提条件: |
-
- HTML と CSS への基本的な理解、JavaScript についての理解。
+ | 前提知識: |
+ HTMLおよびCSS の基礎を理解していること。
|
- 目的: |
+ 学習成果: |
- JavaScript において、配列とは何か、どのように操作するのかを理解すること。
+
+ - 配列とは何か。それは、変数のリストを保持する構造です。
+ - 配列の構文 —
[a, b, c] およびアクセサー構文、myArray[x] 。
+ - 配列の値の変更。
+ length 、push() 、pop() 、join() 、split() などの一般的なプロパティやメソッドを使用した配列操作。
+ forEach() 、map() 、filter() などの高度な配列メソッド。
+
|
@@ -33,7 +39,7 @@ l10n:
もし配列がなかったとしたら、別々の変数にそれぞれの値を格納しなければならず、各変数を表示するのと計算するので別々に呼び出さなければならなかったでしょう。こうなると、書き出すのがとても長く、非効率的でエラーを起こしやすいプログラムとなるでしょう。例えば、10 個の項目を請求書に出すだけでも最悪ですが、それが 100 個や 1000 個だったらどうでしょう。この記事の最後に実例としてやってみましょう。
-前回までの記事と同様に、JavaScript コンソールに配列の基礎となるコード例を[ブラウザーの開発者コンソール](/ja/docs/Learn/Common_questions/Tools_and_setup/What_are_browser_developer_tools)に入力しながら学びましょう。
+前回までの記事と同様に、JavaScript コンソールに配列の基礎となるコード例を[ブラウザーの開発者コンソール](/ja/docs/Learn_web_development/Howto/Tools_and_setup/What_are_browser_developer_tools)に入力しながら学びましょう。
## 配列の作成
@@ -66,7 +72,7 @@ console.log(shopping.length); // 5
## 配列の項目を取得し変更する
-配列の項目には 0 から始まる番号が振られます。この番号は項目のインデックス(添字)と呼ばれます。つまり、最初の項目はインデックス 0、2 番目の項目はインデックス 1、のようになります。配列の各項目は、角括弧 (`[]`) を使用してその項目のインデックスを与えることで、[文字列中の文字を取得するときのように](/ja/docs/Learn/JavaScript/First_steps/Useful_string_methods#文字列の特定の文字を受け取る)取得することができます。
+配列の項目には 0 から始まる番号が振られます。この番号は項目のインデックス(添字)と呼ばれます。つまり、最初の項目はインデックス 0、2 番目の項目はインデックス 1、のようになります。配列の各項目は、角括弧 (`[]`) を使用してその項目のインデックスを与えることで、[文字列中の文字を取得するときのように](/ja/docs/Learn_web_development/Core/Scripting/Useful_string_methods#文字列の特定の文字を受け取る)取得することができます。
1. 次のコードをコンソールに入力してください。
@@ -228,7 +234,7 @@ console.log(longer); // [ "名古屋", "鹿児島" ]
データが長い長い文字列の中に含まれていて、それを使いやすい形に分割して操作したいときがあります。例えばデータを表形式で表示するというようなときです。それには{{jsxref("String.prototype.split()","split()")}} メソッドが使用できます。このメソッドは文字列を分割するのに使用する文字を引数として取り、文字列をその文字で区切った部分文字列の配列に分割します。
> [!NOTE]
-> 実際のところ、これは配列ではなく文字列のメソッドです。しかし、ここで紹介するのが一番だと思い取り上げています。
+> 厳密には、これは配列ではなく文字列のメソッドです。しかし、ここで紹介するのが一番だと思い取り上げています。
1. それではどのように動くか試してみましょう。まずは文字列をコンソールに作ります。
@@ -266,15 +272,15 @@ console.log(longer); // [ "名古屋", "鹿児島" ]
dogNames.toString(); //ポチ,ハチ,タロウ,モコ
```
-## アクティブラーニング: 商品を印字しよう!
+## アクティブラーニング: 商品を印字する
-商品の名前と価格、合計金額を請求書に印字するという最初の話に戻りましょう。以下に示す編集可能なコードのコメントの中に数字が書かれています。この数字はコードを書くべき場所を示しています。各数字の場所に次のようなコードを書いてください。次のようにします。
+先ほど記述した例に戻りましょう。請求書に製品名と価格を印刷し、価格を合計して下部に印刷します。下記に記述されている編集可能な例には、数字を含むコメントがあります。これらのコメントは、コードに何かを追加しなければならない場所を示しています。次のようにします。
1. `// No.1` というコメントの下に、商品の名前と価格をコロン (:) で繋げた、いくつか文字列が並んでいます。これを `products` という名前の配列にしてください。
2. `// No.2` というコメントの下で、 `for...of()` ループを始めて `products` 配列のすべての項目を繰り返すようにしてください。
-3. `// No.3` のコメントの下に 1 行で、現在の配列の項目 (`name:price`) を 2 つに分割するコードを書いてください。一方は商品の名前、もう一方は価格です。もしどうすればいいのかわからなければ、[便利な文字列のメソッド](/ja/docs/Learn/JavaScript/First_steps/Useful_string_methods)の記事を参照してください。さらに[文字列と配列を相互に変換する](#文字列と配列を相互に変換する)も役に立つでしょう。
-4. 上記のコードの一部として、価格を文字列から数値に変換する必要もあるでしょう。どのようにすべきか思い出せなければ、[文字列の最初の記事](/ja/docs/Learn/JavaScript/First_steps/Strings#数値と文字列)を確認してみましょう。
-5. コードの先頭に `total` という名前の変数が宣言されて、0 で初期化されています。ループの中で (`// No.4` *の*下) 繰り返している現在の項目の価格を `total` 変数に加算するコードを一行で書いてください。そうすれば、コードの最後で正しい合計が請求書に印字されます。恐らく[代入演算子](/ja/docs/Learn/JavaScript/First_steps/Math#代入演算子)が役に立つでしょう。
+3. `// No.3` のコメントの下に 1 行で、現在の配列の項目 (`name:price`) を 2 つに分割するコードを書いてください。一方は商品の名前、もう一方は価格です。もしどうすればいいのかわからなければ、[便利な文字列のメソッド](/ja/docs/Learn_web_development/Core/Scripting/Useful_string_methods)の記事を参照してください。さらに[文字列と配列を相互に変換する](#文字列と配列を相互に変換する)も役に立つでしょう。
+4. 上記のコードの一部として、価格を文字列から数値に変換する必要もあるでしょう。どのようにすべきか思い出せなければ、[文字列の最初の記事](/ja/docs/Learn_web_development/Core/Scripting/Strings#数値と文字列)を確認してみましょう。
+5. コードの先頭に `total` という名前の変数が宣言されて、0 で初期化されています。ループの中で (`// No.4` *の*下) 繰り返している現在の項目の価格を `total` 変数に加算するコードを一行で書いてください。そうすれば、コードの最後で正しい合計が請求書に印字されます。恐らく[代入演算子](/ja/docs/Learn_web_development/Core/Scripting/Math#代入演算子)が役に立つでしょう。
6. `// No.5` のコメントの直下のコードを `itemText` 変数が「現在の項目の商品名 — $現在の項目の価格」となるように変更してください。「靴 — $23.99」という感じです。そうすれば正しい情報が請求書に印字されます。これはもう慣れたはずの単純な文字列結合で実現できます。
7. 最後に、 `// No.6` のコメントの下に、 `}` を追加して `for...of()` ループの最後を示す必要があるでしょう。
@@ -297,8 +303,8 @@ console.log(longer); // [ "名古屋", "鹿児島" ]
const list = document.querySelector('.output ul');
const totalBox = document.querySelector('.output p');
let total = 0;
-list.innerHTML = '';
-totalBox.textContent = '';
+list.textContent = "";
+totalBox.textContent = "";
// No.1
'パンツ:6.99'
'靴下:5.99'
@@ -363,8 +369,8 @@ solution.addEventListener("click", () => {
const jsSolution = `const list = document.querySelector('.output ul');
const totalBox = document.querySelector('.output p');
let total = 0;
-list.innerHTML = '';
-totalBox.textContent = '';
+list.textContent = "";
+totalBox.textContent = "";
const products = [
'パンツ:6.99',
@@ -395,15 +401,12 @@ window.addEventListener("load", updateCode);
// タブキーでテキストエリアから抜けてしまうのを防ぎ、
// 代わりにカーソル位置にタブ文字を挿入する
-const KEY_TAB = 9;
-const KEY_ESC = 27;
-
textarea.onkeydown = (event) => {
- if (event.keyCode === KEY_TAB) {
+ if (event.code === "Tab") {
event.preventDefault();
insertAtCaret("\t");
}
- if (event.keyCode === KEY_ESC) {
+ if (event.code === "Escape") {
textarea.blur();
}
};
@@ -467,12 +470,12 @@ body {
{{jsxref("Array.prototype.push()","push()")}} や{{jsxref("Array.prototype.pop()","pop()")}} といったメソッドを使用するよい例は、ウェブアプリでデータの中で有効な項目だけを抜き出して維持したいときなどです。例えば、アニメーションのあるシーンで、現在表示中の背景イメージを保持している配列があり、一度に表示するイメージをパフォーマンスなどの理由で 50 に制限したいとします。その際、新しいオブジェクトを配列に追加したと同時に、古いオブジェクトを削除して配列を希望のサイズに維持します。
-次の例では、もう少し単純に、検索ボックスのある、ダミーの検索サイトを用意しました。検索ボックスに文字が入力されたら、直前 5 つの検索語がリストに表示されます。検索された語が 5 を超えたら最後の検索語が削除されるようになります。新しい検索語が先頭に追加されるので、常に 5 つの検索語が表示されます。
+この例では、よりシンプルな使用方法を示します。ここでは、検索ボックスを備えた模擬の検索サイトを提供します。検索ボックスに語句が入力されると、過去 5 回分の検索語句がリストに表示されるという仕組みです。 時間経過に伴う検索語句の数が 5 つを超えると、新しい語句をリストの一番上に追加するたびに、最後の語句が削除されます。これにより、常に過去 5 回分の検索語句がリストに表示されます。
> [!NOTE]
-> 本当の検索アプリでは、前回の検索語をクリックすることでその検索に戻れて、実際に検索結果が表示されることでしょう!ただし、今は単純にしておきましょう。
+> 実際の検索アプリでは、以前の検索語をクリックすることができ、そうすれば実際の検索結果が表示されるでしょう。今のところは単純にしておきましょう。
-アプリを完成させるには...
+アプリを完成させるには、次のようにする必要があります。
1. `// No.1` コメントの下に、検索ボックスに入力された検索語を配列の先頭に追加するコードを書いてください。検索語は `searchInput.value` と書いて取得します。
2. `// No.2` コメントの下に、配列の最後の項目を削除するコードを書いてください。
@@ -591,7 +594,7 @@ const jsSolution = `const list = document.querySelector('.output ul');
const searchInput = document.querySelector('.output input');
const searchBtn = document.querySelector('.output button');
-list.innerHTML = '';
+list.textContent = "";
const myHistory = [];
const MAX_HISTORY = 5;
@@ -603,7 +606,7 @@ searchBtn.onclick = () => {
// 表示中の一覧を空にして、同じ項目が表示されないようにして、
// 結果は検索語が入力される度に毎回作り直される
- list.innerHTML = '';
+ list.textContent = "";
// 配列をループして、リスト内の全ての検索語を表示する
for (const itemText of myHistory) {
@@ -630,15 +633,12 @@ window.addEventListener("load", updateCode);
// タブキーでテキストエリアから抜けてしまうのを防ぎ、
// 代わりにカーソル位置にタブ文字を挿入する
-const KEY_TAB = 9;
-const KEY_ESC = 27;
-
textarea.onkeydown = (event) => {
- if (event.keyCode === KEY_TAB) {
+ if (event.code === "Tab") {
event.preventDefault();
insertAtCaret("\t");
}
- if (event.keyCode === KEY_ESC) {
+ if (event.code === "Escape") {
textarea.blur();
}
};
@@ -678,7 +678,7 @@ textarea.onkeyup = () => {
## スキルテスト
-この記事の最後に達しましたが、最も大切な情報を覚えていますか?次に進む前に、この情報が身に付いたかどうかを確認するテストがあります。[スキルテスト: 配列](/ja/docs/Learn/JavaScript/First_steps/Test_your_skills:_Arrays)を見てください。
+この記事の最後に達しましたが、最も大切な情報を覚えていますか?次に進む前に、この情報が身に付いたかどうかを確認するテストがあります。[スキルテスト: 配列](/ja/docs/Learn_web_development/Core/Scripting/Test_your_skills:_Arrays)を見てください。
## 結論
@@ -690,5 +690,7 @@ textarea.onkeyup = () => {
- [インデックス付きコレクション](/ja/docs/Web/JavaScript/Guide/Indexed_collections) — 配列とそのいとこにあたる型付き配列についての高度なガイドです。
- {{jsxref("Array")}} — `Array` オブジェクトのリファレンスページです。詳細なガイドと機能については、このリファレンスページで紹介されています。
+- [Aside: Intro to arrays](https://v2.scrimba.com/the-frontend-developer-career-path-c0j/~06e?via=mdn), Scrimba _MDN カリキュラムパートナー_
+ - : 配列の入門として提供された対話形式のレッスン。
-{{PreviousMenuNext("Learn/JavaScript/First_steps/Useful_string_methods", "Learn/JavaScript/First_steps/Silly_story_generator", "Learn/JavaScript/First_steps")}}
+{{PreviousMenuNext("Learn_web_development/Core/Scripting/Useful_string_methods", "Learn_web_development/Core/Scripting/Silly_story_generator", "Learn_web_development/Core/Scripting")}}
diff --git a/files/ja/learn_web_development/core/scripting/build_your_own_function/index.md b/files/ja/learn_web_development/core/scripting/build_your_own_function/index.md
index 56ea92b76137ac..fcaac0e7647423 100644
--- a/files/ja/learn_web_development/core/scripting/build_your_own_function/index.md
+++ b/files/ja/learn_web_development/core/scripting/build_your_own_function/index.md
@@ -1,12 +1,13 @@
---
title: 独自の関数を作る
slug: Learn_web_development/Core/Scripting/Build_your_own_function
-original_slug: Learn/JavaScript/Building_blocks/Build_your_own_function
l10n:
- sourceCommit: 4bddde3e2b86234eb4594809082873fc5bf00ee3
+ sourceCommit: 5b20f5f4265f988f80f513db0e4b35c7e0cd70dc
---
-{{LearnSidebar}}{{PreviousMenuNext("Learn/JavaScript/Building_blocks/Functions","Learn/JavaScript/Building_blocks/Return_values", "Learn/JavaScript/Building_blocks")}}
+{{LearnSidebar}}
+
+{{PreviousMenuNext("Learn_web_development/Core/Scripting/Functions","Learn_web_development/Core/Scripting/Return_values", "Learn_web_development/Core/Scripting")}}
前の記事で扱った重要な理屈をたくさん使って、この記事では実践的な練習を行ないます。ここではあなたが自力で独自関数を作成するための練習を行なっていきます。同時に、関数を扱う上で役に立つ細々の説明もしていきます。
@@ -14,19 +15,17 @@ l10n:
前提知識: |
-
- 基本的な HTML と CSS、それに
- JavaScript の第一歩の理解。関数 — 再利用可能なコードブロック。
+ | HTMLおよびCSS の基礎を理解し、これまでのレッスンで説明した JavaScript を把握していること。
|
- 目標: |
+ 学習成果: |
- カスタム関数を構築するための練習を提供し、関連する有益な詳細をいくつか説明します。
+
+ - 自分自身でカスタム関数を作成する経験。
+ - 関数に引数を追加すること。
+ - 自分の関数を呼び出すこと。
+
|
@@ -52,7 +51,7 @@ alert("これはメッセージです");
最初に、基本的な関数を組み立てていきましょう。
> [!NOTE]
-> 関数に名前を付ける方針としては、[変数の名前付けのルール](/ja/docs/Learn/JavaScript/First_steps/Variables#変数の名前付けのルール)と同じルールに従うべきです。問題はありません、すぐに見分けがつくからです。関数ならすぐ後に括弧が付きますが、変数には付きません。
+> 関数に名前を付ける方針としては、[変数の名前付けのルール](/ja/docs/Learn_web_development/Core/Scripting/Variables#変数の名前付けのルール)と同じルールに従うべきです。問題はありません、すぐに見分けがつくからです。関数ならすぐ後に括弧が付きますが、変数には付きません。
1. [function-start.html](https://github.com/mdn/learning-area/blob/main/javascript/building-blocks/functions/function-start.html) ファイルにアクセスして、ローカルコピーを作成するところから始めます。HTML は単純です。 body にはボタン一つしかありません。特製メッセージボックス用の基本的な CSS スタイルと、JavaScript を追加していく用の空の {{htmlelement("script")}} 要素が含まれています。
2. 次に、`
+
-
-
- ```
-
-4. 元の {{htmlelement("script")}} の中に、以下のコードを追加します。
-
- ```js
- const myImage = document.querySelector(".my-image");
-
- fetch("flowers.jpg").then((response) => {
- response.blob().then((myBlob) => {
- const objectURL = URL.createObjectURL(myBlob);
- myImage.src = objectURL;
- });
- });
- ```
-
-5. [フェッチ](/ja/docs/Web/API/Window/fetch)に対応していないブラウザーで読み込んでも、花の画像が現れるはずです。
- ![Fetch basic example という見出しと紫の花の写真](fetch-image.jpg)
-
-> [!NOTE]
-> 完成版は [fetch-polyfill-finished.html](https://mdn.github.io/learning-area/tools-testing/cross-browser-testing/javascript/fetch-polyfill-finished.html) にあります([ソースコード](https://github.com/mdn/learning-area/blob/main/tools-testing/cross-browser-testing/javascript/fetch-polyfill-finished.html)も参照してください)。
-
-> [!NOTE]
-> 繰り返しになりますが、これから出会う様々なポリフィルを使用する方法はたくさんあります - それぞれのポリフィルのドキュメントを参照してください。
-
-「なぜポリフィルは必要がなくても、常にコードを読み込むべきなのか」と思うかもしれません。これは良い点です。サイトが複雑になり、より多くのライブラリーやポリフィルなどを使用するようになると、多くの余分なコードを読み込むようになり、特に性能の低い端末ではパフォーマンスに影響を及ぼし始める可能性があります。必要なファイルだけを読み込むのが意味あることです。
-
-これを行うには、 JavaScript で特別な設定を要求されます。使用しようとしている機能をブラウザーが対応しているかどうかを検出する、何らかの機能検出テストが必要です。
-
-```js
-if (browserSupportsAllFeatures()) {
- main();
-} else {
- loadScript("polyfills.js", main);
-}
-
-function main(err) {
- // actual app code goes in here
-}
-```
-
-そこで最初に、関数 `browserSupportsAllFeatures()` が `true` を返すかどうかを調べる条件を実行します。もし `true` を返したら、アプリのコードをすべて格納する `main()` 関数を実行します。 `browserSupportsAllFeatures()` は次のようになります。
-
-```js
-function browserSupportsAllFeatures() {
- return window.Promise && window.fetch;
-}
-```
-
-ここでは、[`Promise`](/ja/docs/Web/JavaScript/Reference/Global_Objects/Promise) オブジェクトと [`fetch()`](/ja/docs/Web/API/Window/fetch) 関数がブラウザーで存在するかどうかをテストしています。両方が存在する場合、関数は `true` を返します。もし関数が `false` を返したら、条件分岐の2つ目の部分のコードを実行します。これは `loadScript()` と呼ばれる関数を実行し、ポリフィルをページに読み込み、読み込み完了後に `main()` を実行します。 `loadScript()` は次のようになります。
-
-```js
-function loadScript(src, done) {
- const js = document.createElement("script");
- js.src = src;
- js.onload = () => {
- done();
- };
- js.onerror = () => {
- done(new Error(`Failed to load script ${src}`));
- };
- document.head.appendChild(js);
-}
-```
-
-この関数は新しい `` 要素を、閉じ `