JavaScript のグローバル プロパティ-関数

JavaScript 全局属性/関数詳解:全局を掌握し、自在に操る

説明: JavaScript でよく使用されるグローバルプロパティと関数を詳しく解説し、その機能と使い方を理解することで、JavaScript プログラミング能力の向上を目指します。

JavaScript グローバルプロパティ

1. Infinity

  • 意味:正の無限大を表す数値です。
  • 使用シーン:JavaScript の最大数値範囲を超えた数値を扱う場合に利用します。

2. NaN

  • 意味:非数(Not a Number)を表します。
  • 使用シーン:値が有効な数値かどうかを判断するために使用します。

3. undefined

  • 意味:未定義の値を表します。
  • 使用シーン:変数に値が代入済みかどうかを判断するために使用します。

4. グローバルオブジェクト (Global Object)

  • 意味:すべてのグローバルプロパティと関数は、グローバルオブジェクトの属性です。
  • ブラウザ環境では、グローバルオブジェクトは window オブジェクトです。

JavaScript グローバル関数

1. エンコードとデコード URL

  • encodeURI(): 文字列を URI にエンコードします。
  • decodeURI(): URI をデコードします。
  • encodeURIComponent(): 文字列を URI コンポーネントにエンコードします。
  • decodeURIComponent(): URI コンポーネントをデコードします。
  • 使用シーン:URL 内の特殊文字を処理する場合に利用します。
関数 説明
encodeURI() URI全体をエンコードします。ただし、;/?:@&=+$,# といったURIの構成要素となる記号はエンコードしません。
decodeURI() encodeURI()でエンコードされたURIをデコードします。
encodeURIComponent() URIの構成要素をエンコードします。;/?:@&=+$,# といった記号もエンコードします。
decodeURIComponent() encodeURIComponent()でエンコードされたURIコンポーネントをデコードします。

2. eval()

  • 意味:文字列を JavaScript コードとして解析し、実行します。
  • 使用シーン:動的にコードを実行する場合に利用しますが、セキュリティ上の問題に注意が必要です。

3. isFinite()

  • 意味:値が有限数かどうかを判断します。
  • 使用シーン:数値の検証に利用します。

4. isNaN()

  • 意味:値が NaN かどうかを判断します。
  • 使用シーン:数値の検証に利用します。

5. Number()

  • 意味:さまざまなデータ型を数値型に変換します。
  • 使用シーン:データ型の変換に利用します。

6. parseFloat()

  • 意味:文字列を浮動小数点数に解析します。
  • 使用シーン:文字列から数値への変換に利用します。

7. parseInt()

  • 意味:文字列を整数に解析します。
  • 使用シーン:文字列から数値への変換に利用します。

8. String()

  • 意味:さまざまなデータ型を文字列型に変換します。
  • 使用シーン:データ型の変換に利用します。

9. オブジェクト関連関数

  • Object(): オブジェクトを作成します。

10. その他

  • escape(): 文字列をエンコードします。 (非推奨)
  • unescape(): 文字列をデコードします。 (非推奨)

<script>
// encodeURI() の例
const uri = 'https://www.example.com/検索?q=java script';
const encodedUri = encodeURI(uri);
console.log(encodedUri); // 出力: https://www.example.com/%E6%A4%9C%E7%B4%A2?q=java%20script

// decodeURI() の例
const decodedUri = decodeURI(encodedUri);
console.log(decodedUri); // 出力: https://www.example.com/検索?q=java script
</script>

まとめ

JavaScript のグローバルプロパティと関数を習得することで、開発者はさまざまなプログラミングシーンをより効率的に処理し、より簡潔で洗練されたコードを作成することができます。

関連QA

Q1: グローバルオブジェクトとは何ですか?

A1: グローバルオブジェクトは、コード内のどこからでもアクセスできるオブジェクトです。ブラウザ環境では `window` オブジェクトがグローバルオブジェクトとなり、Node.js 環境では `global` オブジェクトがグローバルオブジェクトとなります。グローバルプロパティやグローバル関数は、このグローバルオブジェクトのプロパティとして定義されています。

Q2: `eval()` 関数はなぜ危険 considered dangerous なのですか?

A2: `eval()` 関数は、渡された文字列を JavaScript コードとして実行するため、悪意のあるコードが実行される可能性があります。例えば、ユーザーが入力した文字列を `eval()` 関数に渡すと、クロスサイトスクリプティング(XSS)攻撃を受ける可能性があります。そのため、`eval()` 関数は使用を避けるべきです。もし、どうしても使用しなければならない場合は、渡される文字列を厳密にチェックする必要があります。

Q3: `parseInt()` と `parseFloat()` の違いは何ですか?

A3: `parseInt()` は文字列を整数に変換する関数で、`parseFloat()` は文字列を浮動小数点数に変換する関数です。例えば、`parseInt('10.5')` は `10` を返し、`parseFloat('10.5')` は `10.5` を返します。