Skip to content

Commit ae50bdb

Browse files
committed
表現の見直し - while-for, switch, javascript-specials
1 parent 3b26dd6 commit ae50bdb

File tree

3 files changed

+45
-45
lines changed

3 files changed

+45
-45
lines changed

1-js/02-first-steps/12-while-for/article.md

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
私たちはしばしば連続して何度も似たような処理を実行する必要があります。
44

5-
例えば、1つずつリストから商品を出力する必要がある場合、もしくは、単に1から10の数値それぞれに同じコードを実行する場合
5+
例えば、1つずつリストから商品を出力する必要がある場合、または単に1から10の数値それぞれに同じコードを実行する場合などです
66

77
*ループ* は複数回コードの同じ部分を繰り返す方法です。
88

@@ -31,7 +31,7 @@ while (i < 3) { // 0, 次に 1, 次に 2 を表示
3131
}
3232
```
3333

34-
ループ本体の1つの実行は *イテレーション* と呼ばれます。上の例のループは3つのイテレーションをします
34+
ループ本体の1回の実行は *イテレーション* と呼ばれます。上の例のループは3回イテレーションします
3535

3636
もしも、上の例に `i++` がない場合、ループは (理論上は) 永遠に繰り返されます。実際には、ブラウザはこのようなループを止める方法を提供しており、サーバサイドJavaScriptではそのプロセスを殺すことができます。
3737

@@ -50,7 +50,7 @@ while (i) { // i が 0 になったとき、条件が偽になり、ループが
5050
```
5151

5252
````smart header="本体が1行の場合、括弧は必須ではありません"
53-
もしもループの本体が1つの文である場合、括弧`{…}`を省略することができます:
53+
ループの本体が1つの文である場合、括弧`{…}`を省略することができます:
5454
5555
```js run
5656
let i = 3;
@@ -62,7 +62,7 @@ while (i) alert(i--);
6262

6363
## "do..while" ループ
6464

65-
条件チェックは `do..while` 構文を使うことでループ本体の *下に* 移動することができます。:
65+
条件チェックは `do..while` 構文を使うことでループ本体の *下に* 移動させることができます。:
6666

6767
```js
6868
do {
@@ -82,7 +82,7 @@ do {
8282
} while (i < 3);
8383
```
8484

85-
この構文の形式は、条件が真になるかどうかに関わらず、**少なくとも1度** はループ本体を実行したい場合を除き、ほとんど使われません。通常、他の形式が好まれます: `while(…) {…}`
85+
この構文の形式は、条件が真になるかどうかに関わらず、**少なくとも1度** はループ本体を実行したい場合を除き、ほとんど使われません。通常は他の形式が好まれます: `while(…) {…}`
8686

8787
## "for" ループ
8888

@@ -122,7 +122,7 @@ begin を実行
122122
→ ...
123123
```
124124

125-
もし初めてループを使う場合、この例に戻って、紙の上でステップ毎にどのように動作するかを再現することが恐らく役立つでしょう
125+
もし初めてループを使う場合は、上の例に戻って、紙の上でステップ毎にどのように動作するかを再現してみると理解しやすいでしょう
126126

127127
これが今のケースで正確に起こっていることです:
128128

@@ -193,15 +193,15 @@ for (; i < 3;) {
193193

194194
ループは `while (i < 3)` と同じになりました。
195195

196-
実際にはすべてを除くこともできますそれは無限ループになります:
196+
実際にはすべてを除くこともできますそれは無限ループになります:
197197

198198
```js
199199
for (;;) {
200200
// 制限なしで繰り返し
201201
}
202202
```
203203

204-
2つの `for` のセミコロン `;` は必須であることに注意してください。ない場合は構文エラーになります。
204+
`for` の2つのセミコロン `;` は必須であることに注意してください。ない場合は構文エラーになります。
205205

206206
## ループの終わり
207207

@@ -231,13 +231,13 @@ alert( 'Sum: ' + sum );
231231
もしもユーザが空を入力、もしくは入力をキャンセルした場合、`break` ディレクティブは行 `(*)` で有効になります。
232232
それはループをすぐに停止し、ループ後の最初の行へ制御を渡します。つまり、`alert` です。
233233

234-
"必要に応じた無限ループ + `break`" の組み合わせは、ループの最初/最後ではなくその間、もしくは本体の様々な場所で条件をチェックする必要がある状況で最適です
234+
"必要に応じた無限ループ + `break`" の組み合わせは、ループの最初/最後ではなく、その間や本体の様々な場所で条件をチェックする必要がある状況で最適です
235235

236236
## 次のイテレーションに進む
237237

238238
`continue` ディレクティブは `break` の "軽量版" です。ループ全体はストップしません。その代わりに、現在のイテレーションを停止し、新しいイテレーションのスタートを強制します(もしも条件が真であれば)。
239239

240-
私たちは、現在のイテレーションが完了し次へ移動したいときに使います
240+
現在のイテレーションが完了し、次へ移動したいときに使います
241241

242242
以下のループは奇数値だけを出力するために `continue` を使用しています:
243243

@@ -251,7 +251,7 @@ for (let i = 0; i < 10; i++) {
251251
}
252252
```
253253

254-
`i` の値が偶数の場合、`continue` ディレクティブは本体の実行を停止し、`for` の次のイテレーションへ制御を渡しします(次の番号で)。
254+
`i` の値が偶数の場合、`continue` ディレクティブは本体の実行を停止し、`for` の次のイテレーションへ制御を渡します(次の番号で)。
255255
したがって、`alert` は奇数値に対してのみ実行されます。
256256

257257
````smart header="ディレクティブ `continue` を使うと入れ子のレベルを減らせます"
@@ -269,13 +269,13 @@ for (let i = 0; i < 10; i++) {
269269

270270
技術的な観点からは、これは上の例と同じです。確かに、`continue` の代わりに `if` ブロックでコードをラップするだけです。
271271

272-
しかし、副作用として括弧のネストが1段深くなります。もしも `if` のコードの中文が長い場合、全体の可読性が下がる可能性があります。
272+
しかし、副作用として括弧のネストが1段深くなります。もしも `if` の中のコードが長い場合、全体の可読性が下がる可能性があります。
273273
````
274274
275-
````warn header="`?` の右側には `break/continue` はありません"
276-
式ではない構文構造は `'?'` の中では使うことはできないことに注意してください。特に、ディレクティブ `break/continue` はそこでは許可されません。
275+
````warn header="`?` の右側には `break/continue` を入れないでください"
276+
式ではない構文構造は `'?'` の中では使うことはできないことに注意してください。特に、ディレクティブ `break/continue` はそこでは許可されません。
277277
278-
例えば、このコードを使うとします:
278+
例えば、このコードを考えます
279279
280280
```js
281281
if (i > 5) {
@@ -285,7 +285,7 @@ if (i > 5) {
285285
}
286286
```
287287
288-
...そして、疑問符を使って書き直します:
288+
...これを、疑問符を使って書き直します:
289289
290290
```js no-beautify
291291
(i > 5) ? alert(i) : *!*continue*/!*; // continue はここでは使えません
@@ -299,7 +299,7 @@ if (i > 5) {
299299

300300
## break/continue のためのラベル
301301

302-
時々、複数のネストしたループから一度で抜け出す必要があります
302+
時々、複数のネストしたループから一度で抜け出す必要があることがあります
303303

304304
例えば、下のコードでは 座標 `(i, j)``(0,0)` から `(3,3)` へプロンプトするよう `i``j` をループします:
305305

@@ -323,7 +323,7 @@ alert('Done!');
323323
`input` の後の通常の `break` は内部ループのみの終了です。それだけでは十分ではありません。
324324
ここでラベルが助けにきます。
325325

326-
*ラベル* はループの前のコロンがついた識別子です:
326+
*ラベル* は、ループの前のコロンがついた識別子です:
327327
```js
328328
labelName: for (...) {
329329
...
@@ -361,7 +361,7 @@ outer:
361361
for (let i = 0; i < 3; i++) { ... }
362362
```
363363

364-
`continue` ディレクティブもまたラベルと一緒に使うことが出来ます。このケースでは、実行はラベル付けされたループの次のイテレーションにジャンプします。
364+
`continue` ディレクティブもラベルと一緒に使うことができます。このケースでは、実行はラベル付けされたループの次のイテレーションにジャンプします。
365365

366366
````warn header="ラベルは \"goto\" ではありません"
367367
ラベルはコードの任意の場所にジャンプすることはできません。
@@ -373,19 +373,19 @@ break label; // label にジャンプ? いいえ。
373373
label: for (...)
374374
```
375375
376-
`break/continue` への呼び出しはループの中からだけ可能です、またラベルはそのディレクティブから上のどこかにある必要があります。
376+
`break/continue` の呼び出しはループの中からだけ可能です。またラベルはそのディレクティブから上のどこかにある必要があります。
377377
````
378378

379379
## サマリ
380380

381-
3つのループのタイプについて説明しました:
381+
3つのループの種類について説明しました:
382382

383383
- `while` -- 条件は各イテレーションの前にチェックされます。
384384
- `do..while` -- 条件は各イテレーションの後にチェックされます。
385-
- `for (;;)` -- 条件は各イテレーションの前にチェックされ、追加の設定が利用可能です
385+
- `for (;;)` -- 条件は各イテレーションの前にチェックされ、追加の設定ができます
386386

387387
"無限" ループを作るために、通常は `while(true)` 構造が使われます。このようなループは他の他のループと同様に `break` ディレクティブで停止することができます。
388388

389389
もしも現在のイテレーションで何もしたくなく、次のイテレーションに進みたい場合は、`continue` ディレクティブを使います。
390390

391-
`break/continue` はループの前のラベルをサポートします。ラベルはネストを抜け、外のループに行くための `break/continue` のための方法です。
391+
`break/continue` はループの前のラベルをサポートします。ラベルは、ネストを抜けて外のループに行くための、 `break/continue` のための方法です。

1-js/02-first-steps/13-switch/article.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
`switch` 文は複数の `if` チェックに置換できます。
44

5-
それは値を複数のバリアントと比較するための、よりわかりやすい方法を提供します。
5+
これは値を複数のパターンと比較するための、よりわかりやすい方法を提供します。
66

77
[cut]
88

@@ -29,8 +29,8 @@ switch(x) {
2929
```
3030

3131
- `x` の値は、最初の `case` (それは `value1`)の値と厳密な等価のチェックをされます、そして2つ目(`value2`)と続きます。
32-
- もしも等価が見つかった場合`switch` は該当する `case` から始まるコードを実行し始めます。最も近い `break` まで(もしくは `switch` の終わりまで)。
33-
- もしもマッチするケースが無い場合は`default` コードが実行されます(もしも存在すれば)
32+
- 等価が見つかった場合`switch` は該当する `case` から始まるコードを実行し始めます。最も近い `break` まで(もしくは `switch` の終わりまで)。
33+
- マッチするケースが無い場合は`default` コードが実行されます(存在する場合)
3434

3535
##
3636

@@ -56,11 +56,11 @@ switch (a) {
5656
}
5757
```
5858

59-
ここで、 `switch``3` というバリアントの最初の `case` から `a` と比較を始めます。マッチはしません。
59+
ここで、 `switch``3` というパターンの最初の `case` から `a` と比較を始めます。マッチはしません。
6060

6161
そして `4` です。マッチするので、`case 4` から最も近い `break` までの実行を開始します。
6262

63-
**もしも `break` がない場合、チェックなしで次の `case` の実行を継続します。**
63+
**`break` がない場合、チェックなしで次の `case` の実行を継続します。**
6464

6565

6666
`break` なしの例です:
@@ -90,7 +90,7 @@ alert( 'Too big' );
9090
alert( "I don't know such values" );
9191
```
9292

93-
````smart header="どのような式も `switch / case` 引数になります"
93+
````smart header="どのような式も `switch / case` の引数になります"
9494
`switch``case` の両方は任意の表現が可能です。
9595

9696
例:
@@ -115,7 +115,7 @@ switch (+a) {
115115
116116
## "case"のグルーピング
117117
118-
同じコードを共有するいくつかの `case` のバリアントはグループ化できます
118+
同じコードを共有する複数の `case` のパターンはグループ化できます
119119
120120
たとえば、`case 3` と `case 5` で同じコードを実行したい場合:
121121
@@ -144,10 +144,10 @@ switch (a) {
144144
145145
ケースを "グループ化" する機能は、`break` がない場合の `switch/case` の動作の副作用です。ここで `case 3` の実行は、`break` がないので `(*)` の行から始まり、`case 5` を通り抜けます。
146146
147-
## タイプの問題
147+
## 型の問題
148148
149149
等価チェックは常に厳密であることに注目しましょう。
150-
マッチするために値は同じタイプである必要があります
150+
マッチするために値は同じ型である必要があります
151151
152152
たとえば、このコードを考えてみましょう:
153153
@@ -173,4 +173,4 @@ switch (arg) {
173173
174174
1. `0`, `1` の場合、最初の `alert` が実行されます。
175175
2. `2` の場合は2つ目の `alert` が実行されます。
176-
3. しかし `3` の場合、`prompt` の結果は文字列の `"3"`なので、数字の `3` との厳密な等価 `===` ではありません。そのため、`case 3` はデッドコードです! `default` バリアントが実行されるでしょう
176+
3. しかし `3` の場合、`prompt` の結果は文字列の `"3"`なので、数字の `3` との厳密な等価 `===` ではありません。そのため、`case 3` はデッドコードです! `default` ケースが実行されるでしょう

1-js/02-first-steps/16-javascript-specials/article.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ for(;;) {
7474
- 文字 `$``_` は普通の文字です。
7575
- 非ラテンのアルファベットや象形文字も使えますが、一般的には使用されません。
7676

77-
変数は動的に型付けされます。 彼らは任意の値を格納することができます:
77+
変数は動的に型付けされます。 それらは任意の値を格納することができます:
7878

7979
```js
8080
let x = 5;
@@ -88,7 +88,7 @@ x = "John";
8888
- `boolean` 論理値: `true/false`
8989
- `null` -- 単一の値 `null` を持つ型。"空白", "存在しない" を意味する
9090
- `undefined` -- 単一の値 `undefined` を持つ型。"未割り当て" を意味する
91-
- `object``symbol` -- 複雑なデータ構造やユニークな識別子で、私たちはまだそれらは学んでないです
91+
- `object``symbol` -- 複雑なデータ構造やユニークな識別子です。私たちはまだそれらは学んでいません
9292

9393
`typeof` 演算子は値の型を返します。2つ例外があります:
9494
```js
@@ -106,12 +106,12 @@ typeof function(){} == "function" // 関数は特別に扱われます
106106
: `question` を訪ね、訪問者の入力もしくは、"cancel" が選択されたときは `null` を返します。
107107

108108
[`confirm(question)`](mdn:api/Window/confirm)
109-
: `question` を訪ね、OKとキャンセルを選択することを提案します。選択は `true/false` として返却されます。
109+
: `question` を訪ね、OKかキャンセルを選択させます。選択は `true/false` として返却されます。
110110

111111
[`alert(message)`](mdn:api/Window/alert)
112112
: `message` を出力します。
113113

114-
それらの関数はすべて *モーダル* であり、コードの実行を止め、訪問者が回答するまで、そのページとのやり取りを防ぎます
114+
それらの関数はすべて *モーダル* であり、コードの実行を止め、訪問者が回答するまでそのページとのやり取りを防ぎます
115115

116116
例えば:
117117

@@ -132,7 +132,7 @@ JavaScriptは次のような演算子をサポートします:
132132
算術
133133
: 常連: `* + - /`, また剰余として `%`、数字の累乗として `**`
134134

135-
バイナリプラス `+` は文字列を連結します。また、オペランドのいずれかが文字列であれば、もう一方も文字列に変換されます:
135+
二項演算子プラス `+` は文字列を連結します。また、オペランドのいずれかが文字列であれば、もう一方も文字列に変換されます:
136136

137137
```js run
138138
alert( '1' + 2 ); // '12', string
@@ -145,8 +145,8 @@ JavaScriptは次のような演算子をサポートします:
145145
ビット単位
146146
: ビット演算子ビットレベルで整数を扱います。必要なときに、[docs](mdn:/JavaScript/Reference/Operators/Bitwise_Operators)を見てください。
147147

148-
三元
149-
: 3つのパラメータを持つ唯一の演算子です: `cond ? resultA : result B`. もしも `cond` が真の場合、`resultA` を返し、そうでなければ `resultB` を返します。
148+
3項
149+
: 3つのパラメータを持つ唯一の演算子です: `cond ? resultA : result B`. `cond` が真の場合、`resultA` を返し、そうでなければ `resultB` を返します。
150150

151151
論理演算子
152152
: 論理積 `&&` と 論理和 `||` は短絡評価を行い、それが停止したところの値を返します。
@@ -168,7 +168,7 @@ JavaScriptは次のような演算子をサポートします:
168168
より大きい/少ない演算子は文字列を1文字ずつ比較し、他の型は数値に変換します。
169169

170170
論理演算子
171-
: カンマ演算子のような、他のものはほとんどありません
171+
: カンマ演算子のように、他のものはほとんど使われません
172172

173173
より詳細はこちらです: <info:operators>, <info:comparison>, <info:logical-operators>.
174174

@@ -198,11 +198,11 @@ JavaScriptは次のような演算子をサポートします:
198198

199199
詳細はこちらです: <info:while-for>.
200200

201-
今後、オブジェクトを扱うためのより多くのループのタイプを学びます
201+
今後、オブジェクトを扱うためのより多くの種類のループを学びます
202202

203203
## "switch" 構造
204204

205-
"switch" 構造は複数の `if` チェックを置換できます。それは比較に `===` を使います。
205+
"switch" 構造は複数の `if` チェックに置換できます。それは比較に `===` を使います。
206206

207207
例えば:
208208

@@ -272,7 +272,7 @@ switch (age) {
272272

273273
- 関数はローカル変数を持ちます: それらはその関数本体の中で宣言されます。このような変数は関数の中でだけ見えます。
274274
- パラメータはデフォルト値を持つことが出来ます。: `function sum(a = 1, b = 2) {...}`.
275-
- 関数は常に何かを返します。もしも `return` 文がない場合は`undefined` を返します。
275+
- 関数は常に何かを返します。もしも `return` 文がない場合は `undefined` を返します。
276276

277277

278278
| 関数宣言 | 関数式 |
@@ -284,4 +284,4 @@ switch (age) {
284284

285285
## これからが本番です
286286

287-
ここまではJavaScriptの機能の簡単な一覧でした。今のところ、私たちは基本だけを学びました。このチュートリアルではさらに、JavaScriptのより特別で高度な機能についても説明していきます
287+
ここまではJavaScriptの機能の簡単な一覧でした。今のところ、私たちは基本だけを学びました。このチュートリアルではさらに、JavaScriptのより特別で高度な機能について説明していきます

0 commit comments

Comments
 (0)