JavaScript  標準ライブラリまとめ

---

# 標準ライブラリ

### Number

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Number

| API                                                          | 意味                               | 備考                             |
| ------------------------------------------------------------ | ---------------------------------- | -------------------------------- |
| [Number.NaN](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Number/NaN) | 数学的に存在しない数を表す           | `NaN` として直接記述可能         |
| [Number.isNaN()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Number/isNaN) | 渡された値がNaNかどうかを判定        | `isNaN` として直接記述可能       |
| [Number.isInteger()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Number/isInteger) | 渡された値が整数かどうかを判定        |                                  |
| [Number.parseInt()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Number/parseInt) | 渡された値を整数形式に変換して返す    | `parseInt()` として直接記述可能  |
| [Number.parseFloat()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Number/parseFloat) | 渡された値を浮動小数点数形式に変換して返す | `parseFloat()` として直接記述可能 |
| [Number.prototype.toFixed()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixed) | 現在の数値を指定した小数桁数で丸める | 小数点以下の桁数を渡す             |
| [Number.prototype.toString()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Number/tostring)             　　　　　　　| 現在の数値を文字列に変換して返す     | 基数を2から36まで渡す             |

---

### String

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String

| API                                                          | 意味                                                         | 備考                   |
| ------------------------------------------------------------ | ------------------------------------------------------------ | ---------------------- |
| [String.fromCharCode()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/fromCharCode) | コードポイントから文字を取得する                             | 1つまたは複数のコードポイントを渡す |
| [String.prototype.length](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/length) | 文字列の長さを取得する                                         |                        |
| [String.prototype.charCodeAt()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/charCodeAt) | 指定したインデックスの文字のUnicode値を取得する                  | インデックスを渡す       |
| [String.prototype.includes()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/includes) | 現在の文字列が指定の文字列を含んでいるかどうかを判定する              | 検索する文字列を渡す     |
| [String.prototype.indexOf()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf) | 指定した文字列が現在の文字列内で最初に現れる位置を返す               | 存在しない場合は -1 を返す |
| [String.prototype.lastIndexOf()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/lastIndexOf) | 指定した文字列が現在の文字列内で最後に現れる位置を返す               | 存在しない場合は -1 を返す |
| [String.prototype.endsWith()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith) | 指定した文字列で終わっているかどうかを判定する                      | 比較する文字列を渡す     |
| [String.prototype.startsWith()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith) | 指定した文字列で始まっているかどうかを判定する                      | 比較する文字列を渡す     |
| [String.prototype.padStart()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/padStart) | 現在の文字列を指定された文字で指定された長さになるように埋める（先頭） | 指定する長さと埋める文字を渡す |
| [String.prototype.padEnd()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/padEnd) | 現在の文字列を指定された文字で指定された長さになるように埋める（末尾） | 指定する長さと埋める文字を渡す |
| [String.prototype.split()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/split) | 現在の文字列を指定された文字列で分割し、配列として返す                | 分割する文字列を渡す     |
| [String.prototype.substring()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/substring) | 指定した開始インデックスから終了インデックスまでの部分文字列を返す    | 開始インデックスと終了インデックスを渡す |
| [String.prototype.trim()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/Trim) | 文字列の両端から空白文字を削除し、新しい文字列を返す                 | パラメータなし           |
| [String.prototype.trimStart()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/trimStart) | 文字列の先頭から空白文字を削除し、新しい文字列を返す                 | パラメータなし           |
| [String.prototype.trimEnd()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/trimEnd) | 文字列の末尾から空白文字を削除し、新しい文字列を返す                  | パラメータなし           |
| [String.prototype.toUpperCase()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/toUpperCase) | 文字列を大文字に変換して返す                                      | パラメータなし           |
| [String.prototype.toLowerCase()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/toLowerCase) | 文字列を小文字に変換して返す                                      | パラメータなし           |
| [String.prototype.replace()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/replace) | 文字列内の最初に見つかった指定された文字列を新しい文字列で置換する    |                        |
| [String.prototype.replaceAll()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/replaceall) 　　　　　　　　　　　　　　　　　　　　| 文字列内のすべての指定された文字列を新しい文字列で置換する            |                        |

## 数学

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Math

| API                                                          | 意味                      | 備考            |
| ------------------------------------------------------------ | ------------------------- | --------------- |
| [Math.PI](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Math/PI) | 円周率πを取得する             |                 |
| [Math.abs()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Math/abs) | 指定した数の絶対値を取得する   | 数値を渡す      |
| [Math.ceil()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Math/ceil) | 数字を切り上げる              | 数値を渡す      |
| [Math.floor()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Math/floor) | 数字を切り捨てる              | 数値を渡す      |
| [Math.max()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Math/max) | 数列の中で最大値を取得する   | 数列を渡す      |
| [Math.min()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Math/min) | 数列の中で最小値を取得する   | 数列を渡す      |
| [Math.random()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Math/random) | 0から1の間の乱数を取得する   | パラメータなし；1にはならない |
| [Math.round()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Math/round) | 四捨五入した結果を返す      | 数値を渡す      |


---

## 日付

### 時間の基本知識

#### 単位

| 単位               | 名称   | 換算                      |
| ------------------ | ------ | ------------------------- |
| hour               | 時間   | 1 day = 24 時間           |
| minute             | 分     | 1 hour = 60 分            |
| second             | 秒     | 1 minute = 60 秒          |
| millisecond （ms） | ミリ秒 | 1 second = 1000 ミリ秒    |
| nanosecond （ns）  | ナノ秒 | 1 ミリ秒 = 1000 ナノ秒     |

#### GMT と UTC

世界は24のタイムゾーンに分かれており、東京はUTC+9です。GMTはUTC+0です。

**GMT**: グリニッジ平均時。太陽時、ミリ秒単位で正確です。

**UTC**: 協定世界時。原子時を基準とし、ナノ秒単位で正確です。

> 国際標準では、GMTではなくUTCが使用されています。

GMTとUTCの時間表現はテキストで同じです。例えば、次のようになります：

```
Thu, 27 Aug 2020 08:01:44 GMT
```

また、ISO 8601標準では、時間の表現として以下の形式が推奨されています：

```
YYYY-MM-DDTHH:mm:ss.msZ
例：
2020-08-27T08:01:44.000Z
```

**GMT、UTC、ISO 8601 はすべて UTC+0 の時間を表します**

#### Unix タイムスタンプ

> Unix タイムスタンプは、1970年1月1日UTC午前0時を基準として指定した時間までの秒数（ミリ秒数）を表します。

#### プログラムでの時間処理

**プログラムでの時間の計算や保存には、UTC時間またはタイムスタンプを使用することが重要です。**

**ユーザーとのやり取りでは、UTC時間やタイムスタンプをより分かりやすいテキストに変換して表示します。**


以下の質問を考えてみてください：

1. ユーザーの誕生日はローカル時間ですか、UTC時間ですか？
2. 2つの日付を比較する場合、ローカル時間で比較しますか、UTC時間で比較しますか？
3. 記事の公開日を表示する場合、ローカル時間で表示しますか、UTC時間で表示しますか？
4. `·東京時間2020-8-28 10:00:00`と`グリニッジ2020-8-28 02:00:00`、どちらが大きいですか、どちらが小さいですか？
5. `東京のタイムスタンプが0`と`グリニッジのタイムスタンプが0`、これらの時間は同じですか？
6. 東京のユーザーが入力した誕生日が`1970-1-1`の場合、彼の生まれたUTC時間は何ですか？タイムスタンプは何ですか？

### 日付API

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Date

コンストラクタ:

```js
new Date(); // 現在の日付オブジェクトを取得
new Date(value); // タイムスタンプから日付オブジェクトを取得
new Date(dateString); // 標準の日付文字列から日付オブジェクトを取得
new Date(year, monthIndex [, day [, hours [, minutes [, seconds [, milliseconds]]]]]); // 年、月、日、時間、分、秒、ミリ秒から日付オブジェクトを取得
```

| API                                                          | 意味                   | 備考                     |
| ------------------------------------------------------------ | ---------------------- | ------------------------ |
| [Date.now()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Date/now) | 現在のタイムスタンプを取得する | パラメータなし           |
| [Date.prototype.getFullYear()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Date/getFullYear) | 年を取得する           | パラメータなし；ローカル時間 |
| [Date.prototype.getMonth()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Date/getMonth) | 月を取得する           | パラメータなし；ローカル時間；範囲は0から11 |
| [Date.prototype.getDate()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Date/getDate) | 日を取得する           | パラメータなし；ローカル時間 |
| [Date.prototype.getHours()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Date/getHours) | 時を取得する           | パラメータなし；ローカル時間 |
| [Date.prototype.getMinutes()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Date/getMinutes) | 分を取得する           | パラメータなし；ローカル時間 |
| [Date.prototype.getSeconds()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Date/getSeconds) | 秒を取得する           | パラメータなし；ローカル時間 |
| [Date.prototype.getMilliseconds()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Date/getMilliseconds) | ミリ秒を取得する       | パラメータなし；ローカル時間 |
| [Date.prototype.toLocaleString()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleString) 　　　　　　　　　　　　　　　　| ローカルの日付表記を取得する |                          |

## オブジェクト

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Object

| API                                                          | 意味                                   | 備考                   |
| ------------------------------------------------------------ | -------------------------------------- | ---------------------- |
| [Object.assign()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Object/assign) | 複数のオブジェクトのプロパティを結合する | 後者で上書きされる     |
| [Object.getPrototypeOf()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Object/getPrototypeOf) | オブジェクトの隠れプロトタイプを取得する |                        |
| [Object.setPrototypeOf()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Object/setPrototypeOf) | オブジェクトの隠れプロトタイプを設定する |                        |
| [Object.create()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Object/create) 　　　　　　　　　　　　　　| 新しいオブジェクトを作成し、その隠れプロトタイプを設定する |                        |

こちらが日本語でのテキストです。

## 配列

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array

| API                                                          | 意味                                                     | 備考                                               |
| ------------------------------------------------------------ | -------------------------------------------------------- | -------------------------------------------------- |
| [Array.prototype.concat()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/concat) | 複数の配列を結合して新しい配列を作成する                     |                                                    |
| [Array.prototype.includes()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/includes) | 配列に特定の値が含まれているかどうかを判定する               |                                                    |
| [Array.prototype.indexOf()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf) | 配列内の特定の値の最初のインデックスを取得する               | 存在しない場合は -1                                 |
| [Array.prototype.lastIndexOf()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/lastIndexOf) | 配列内の特定の値の最後のインデックスを取得する               | 存在しない場合は -1                                 |
| [Array.prototype.join()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/join) | 配列のすべての要素を連結して文字列として返す                 |                                                    |
| [Array.prototype.push()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/push) | 配列の末尾に要素を追加する                                 |                                                    |
| [Array.prototype.unshift()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/unshift) | 配列の先頭に要素を追加する                                 |                                                    |
| [Array.prototype.pop()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/pop) | 配列の最後の要素を削除し、その要素を返す                     |                                                    |
| [Array.prototype.shift()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/shift) | 配列の最初の要素を削除し、その要素を返す                     |                                                    |
| [Array.prototype.splice()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/splice) | 配列内の任意の位置で要素を削除、置換、挿入する               |                                                    |
| [Array.prototype.reverse()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/reverse) | 配列の要素の順序を逆にする                                   |                                                    |
| [Array.prototype.sort()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/sort) | 配列をソートする                                           | 比較関数を指定する：0 - 位置を変更しない、<0 - 先行する、>0 - 後続する |
| [Array.prototype.slice()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/slice) 　　　　　　　　　　　　　　　　　　　　　| 配列の一部を取り出して新しい配列として返す                   |                                                    |

## 関数

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Function

| API                                                          | 意味               | 備考                     |
| ------------------------------------------------------------ | ------------------ | ------------------------ |
| [Function.prototype.apply()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Function/apply) | 関数を実行し、thisをバインドする | 引数リストを配列形式で渡す |
| [Function.prototype.call()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Function/call) 　　　　　　　　| 関数を実行し、thisをバインドする | 引数リストを順に渡す       |