Skip to content

Commit 67ca9ab

Browse files
committed
📝 スペースとインデントの調整
1 parent 6bfc8e6 commit 67ca9ab

File tree

1 file changed

+33
-23
lines changed

1 file changed

+33
-23
lines changed

javascript/DOCS.md

Lines changed: 33 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -543,14 +543,15 @@ for文中の処理の最初で`array[i]`を別の変数(例えば`value`)に代
543543
プログラミングではそれらを組み合わせて多種多様な処理を作っていくわけです。
544544
しかし処理のたびに毎回同じコードを書くのは気が引けますよね?もし一連の処理に名前をつけて呼び出せたら...。ここではそれを実現する愉快な仲間たちを紹介します。
545545

546-
> このセクションは全体的にだいぶ端折った説明をしています。
546+
> このセクションは全体的にだいぶ端折った説明をしています。
547547
> より詳細な説明は参考文献から[mdn web docs](https://developer.mozilla.org/ja/docs/Web)[JSPrimer](https://jsprimer.net/)の該当箇所を読んでください。
548548
549549
### 6-1. 関数
550550

551551
#### 6-1-1. 関数
552552

553-
すでに関数の呼び出しは資料中にたくさん登場しています。例えば`console.log()`は立派な関数呼び出しです。このように関数は`関数名(引数)`という形で呼び出せます。
553+
すでに関数の呼び出しは資料中にたくさん登場しています。例えば `console.log()` は立派な関数呼び出しです。
554+
このように関数は `関数名(引数)` という形で呼び出せます。
554555

555556
プログラム中では基本的に以下のように記述できます。
556557

@@ -594,13 +595,15 @@ function solveQuadraticEquation (a, b, c) {
594595
let result = solveQuadraticEquation(3, 5, 7);
595596
```
596597

597-
ここで `a`, `b`, `c`**仮引数**と呼ばれ、関数の呼び出し時に`()`の中の対応する位置に与えられた値(**引数**)を参照できます。その後`return`で関数の処理結果を**返り値**として呼び出し元に返しています。
598-
この`return`文は値を返す必要がない関数では省略可能です。
598+
ここで `a`, `b`, `c`**仮引数**と呼ばれ、関数の呼び出し時に `()` の中の対応する位置に与えられた値(**引数**)を参照できます。
599+
その後 `return` で関数の処理結果を**返り値**として呼び出し元に返しています。この`return`文は値を返す必要がない関数では省略可能です。
599600
`return`は値を返す、つまり関数の処理を終えたことを意味します。そのため上記の処理のように処理の途中で関数を終了したり、条件によって複数の終了処理を記述することができます。
600601

601602
#### 6-1-2. 無名関数
602603

603-
JSで頻出する関数の書き方として、名前はないけど関数として宣言されて実行されるものがあります。それが**無名関数**です。以下のようなものが無名関数と呼ばれます。
604+
JS で頻出する関数の書き方として、名前はないけど関数として宣言されて実行されるものがあります。それが**無名関数**です。
605+
606+
以下のようなものが無名関数と呼ばれます。
604607

605608
```javascript
606609
function (msg) {
@@ -612,8 +615,8 @@ function (msg) {
612615
};
613616
```
614617

615-
後者は特別に**アロー関数**と呼ばれる場合もあります。これらは返り値として関数を返します。
616-
そのため、以下のように変数に代入して変数名の後ろに`()`をつけることで代入した関数を呼び出すことができます。
618+
後者は特別に**アロー関数**と呼ばれる場合もあります。これらは返り値として関数を返します。
619+
そのため、以下のように変数に代入して変数名の後ろに `()` をつけることで代入した関数を呼び出すことができます。
617620

618621
```javascript
619622
const log = function (msg) {
@@ -625,8 +628,8 @@ log('test');
625628

626629
#### 6-1-3. 値としての関数
627630

628-
6-1-2.では無名関数を変数に代入していました。このことから、JSの関数は値として扱えることがわかります。
629-
この性質を利用してコールバックという処理方法を取れます。`setTimeout(callback, delay)``callback`のように関数を値として渡すことで特別な処理がしやすくなります。
631+
6-1-2. では無名関数を変数に代入していました。このことから、JS の関数は値として扱えることがわかります。
632+
この性質を利用してコールバックという処理方法を取れます。`setTimeout(callback, delay)``callback` のように関数を値として渡すことで特別な処理がしやすくなります。
630633

631634
```javascript
632635
setTimeout(() => {
@@ -640,17 +643,18 @@ setTimeout(() => {
640643
<details>
641644
<summary><code>setTimeout</code></summary>
642645

643-
`setTimeout``setTimeout(callback, delay)`のように2つの引数を取ります。
644-
`callback`はコールバック関数で`delay`ミリ秒後に実行されます。
645-
また、返り値として正の整数値を返します。これは登録されたタイマーを一意に識別するためのIDです。`setTimeout`が呼ばれてから`delay`ミリ秒の間に`clearTimeout(id)`とすることで登録されたコールバック関数の実行をキャンセルできます。
646+
`setTimeout``setTimeout(callback, delay)` のように2つの引数を取ります。
647+
`callback` はコールバック関数で `delay` ミリ秒後に実行されます。
648+
また、返り値として正の整数値を返します。これは登録されたタイマーを一意に識別するためのIDです。
649+
`setTimeout` が呼ばれてから `delay` ミリ秒の間に `clearTimeout(id)` とすることで登録されたコールバック関数の実行をキャンセルできます。
646650
</details>
647651

648652
### 6-2. オブジェクト
649653

650654
#### 6-2-1. 定義とアクセス
651655

652-
オブジェクトの名はここまでにも登場していますが、あらためて説明します。
653-
JSにおけるオブジェクトとは、キーと値が対になった**プロパティの集合**です。
656+
オブジェクトの名はここまでにも登場していますが、あらためて説明します。
657+
JS におけるオブジェクトとは、キーと値が対になった**プロパティの集合**です。
654658
以下の文法で定義・アクセスできます。
655659

656660
```javascript
@@ -664,12 +668,14 @@ console.log(obj.key1, obj['key2']);
664668

665669
![オブジェクトのサンプル実行結果](imgs/object-sample.png)
666670

667-
このとき、`[]`(ブラケット記法)を利用したアクセスでは`obj['key2']`のように、プロパティ名を文字列として記述するほうが望ましいです。仮に`obj[key2]`と記述してアクセスしようとしたとき、`key2`が変数として解釈されて未定義のためエラーが発生します。
668-
これに対して、`.`(ドット記法)を利用したアクセスでは、使えないプロパティ名があることに注意が必要です。数字で始まるプロパティ名やハイフンを含んだプロパティ名はブラケット記法でアクセスする必要があります。
671+
このとき、`[]`(ブラケット記法)を利用したアクセスでは `obj['key2']` のように、プロパティ名を文字列として記述するほうが望ましいです。
672+
仮に `obj[key2]` と記述してアクセスしようとしたとき、`key2` が変数として解釈されて未定義のためエラーが発生します。
673+
これに対して、`.`(ドット記法)を利用したアクセスでは、使えないプロパティ名があることに注意が必要です。
674+
数字で始まるプロパティ名やハイフンを含んだプロパティ名はブラケット記法でアクセスする必要があります。
669675

670676
#### 6-2-2. プロパティの追加と存在確認
671677

672-
JSのオブジェクトは、一度作成したあとその値自体を変更できる特性を持ちます。これは`const`を利用して宣言したときも同様です。
678+
JS のオブジェクトは、一度作成したあとその値自体を変更できる特性を持ちます。これは `const` を利用して宣言したときも同様です。
673679
そのため、以下のようにしてオブジェクトにプロパティを追加できます。
674680

675681
```javascript
@@ -683,7 +689,10 @@ console.log(obj.key1, obj['key2']);
683689

684690
![オブジェクトにプロパティを追加](imgs/objectr-add-property.png)
685691

686-
またこの特性から、オブジェクトにないプロパティも参照できてしまいます(参照すると`undefined`が返ります)。この挙動によるバグを回避するために、いくつかの方法でオブジェクトに目的のプロパティが存在するかを確認することができます。ここでは最も使いやすい手法として**Optional Chaining演算子**`?.`を用いた方法を以下に示します。
692+
またこの特性から、オブジェクトにないプロパティも参照できてしまいます(参照すると `undefined` が返ります)。
693+
この挙動によるバグを回避するために、いくつかの方法でオブジェクトに目的のプロパティが存在するかを確認することができます。
694+
695+
ここでは最も使いやすい手法として **Optional Chaining 演算子** `?.` を用いた方法を以下に示します。
687696

688697
```javascript
689698
const obj = {
@@ -711,12 +720,13 @@ console.log(obj?.prop2.key1); // エラー (obj?.prop2 が undefinedになり、
711720
console.log(obj?.prop2?.key1); // X undefined (obj?.prop2 が undefinedになり、undefined?.key1がundefinedになる)
712721
```
713722
714-
例えば、APIリクエストのレスポンスにあったりなかったりするプロパティにアクセスするときや、入力が必須でない項目があるフォームなどを扱うときに重宝する機能です。覚えていると良いことがあるかもしれません。
723+
例えば、API リクエストのレスポンスにあったりなかったりするプロパティにアクセスするときや、入力が必須でない項目があるフォームなどを扱うときに重宝する機能です。
724+
覚えていると良いことがあるかもしれません。
715725
716726
<details>
717727
<summary>オブジェクトのプロパティに関数を</summary>
718728
719-
JSの関数は値として扱える、という話をしましたが、ならばキーと値が対になったプロパティに関数を使うこともできそうですよね?できます。
729+
JS の関数は値として扱える、という話をしましたが、ならばキーと値が対になったプロパティに関数を使うこともできそうですよね?できます。
720730
721731
```javascript
722732
const basicArithmeticOperations = {
@@ -764,7 +774,7 @@ class <クラス名> {
764774
例えば
765775
- クラス名: `MyClass`
766776
- 文字列を与えて初期化できる(与えなくても初期値をもつ)
767-
- `printText`メソッドを呼び出すことで自身が持つ文字列を出力する
777+
- `printText` メソッドを呼び出すことで自身が持つ文字列を出力する
768778
769779
というクラスを実装してみます。
770780
@@ -788,8 +798,8 @@ class MyClass {
788798
const myClass = new MyClass('my text');
789799
```
790800
791-
これで自身の文字列として`'my text'`を持つ`MyClass`のインスタンスを生成して`myClass`に代入できました。
792-
`myClass`から`printText`メソッドを呼び出せば`'my text'`と出力されるはずです。
801+
これで自身の文字列として `'my text'` を持つ `MyClass` のインスタンスを生成して `myClass` に代入できました。
802+
`myClass` から `printText` メソッドを呼び出せば `'my text'` と出力されるはずです。
793803
794804
```javascript
795805
myClass.printText();

0 commit comments

Comments
 (0)