ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript での型変換の完全ガイド: 暗黙的な強制と明示的な強制

JavaScript での型変換の完全ガイド: 暗黙的な強制と明示的な強制

Barbara Streisand
リリース: 2024-12-31 07:27:10
オリジナル
822 人が閲覧しました

A Complete Guide to Type Conversion in JavaScript: Implicit vs Explicit Coercion

*### JavaScript での型変換
*

JavaScript における型変換とは、値をあるデータ型から別のデータ型に変換するプロセスを指します。 JavaScript は動的に型指定される言語です。つまり、変数は特定のデータ型にバインドされず、異なる型間で自動的または明示的に変換できます。

### 型変換の種類

JavaScript には 2 種類の型変換があります:

1. **暗黙的な型変換 (型強制)

  1. 明示的な型変換**

### 1. **暗黙的な型変換 (型強制)**

暗黙的な型変換 (型強制とも呼ばれます) は、異なるデータ型間で操作を実行するときに JavaScript によって自動的に行われます。 JavaScript は、必要に応じて、ある型を別の型に自動的に変換します。

#### 暗黙的な型変換の例:

  • 文字列の連結 文字列に数値を追加すると、JavaScript は数値を文字列に自動的に変換します。
  let result = '5' + 1;
  console.log(result);  // Output: '51' (String)
ログイン後にコピー
ログイン後にコピー

-** ブール変換 **
非ブール値がブール値コンテキストで使用される場合、JavaScript はそれを true または false に変換します。

  let isValid = 'hello' == true;  // Implicit coercion
  console.log(isValid);  // Output: true
ログイン後にコピー
ログイン後にコピー
  • ***等価比較* ** == を使用して異なる型を比較す​​る場合、JavaScript は比較を機能させるために型強制を実行します。
  let result = '5' == 5;
  console.log(result);  // Output: true (due to implicit coercion)
ログイン後にコピー
ログイン後にコピー

** 2. 明示的な型変換**

明示的な型変換 (型キャストとも呼ばれます) は、組み込みメソッドまたは関数を使用して、ある型を別の型に手動で変換することです。 JavaScript には、型間を変換するための関数がいくつか用意されています。

明示的な型変換の例:

- **文字列に変換中 **
String() 関数または .toString() メソッドを使用して、値を文字列に変換できます。

  let num = 123;
  let str = String(num);  // Using String()
  console.log(str);  // Output: '123'

  let bool = true;
  let strBool = bool.toString();  // Using .toString()
  console.log(strBool);  // Output: 'true'
ログイン後にコピー
ログイン後にコピー

- **数値に変換中 **
Number() 関数、単項演算子、または parseInt()/parseFloat() を使用して、値を数値に変換できます。

  let str = '123';
  let num = Number(str);
  console.log(num);  // Output: 123

  let bool = true;
  let numBool = +bool;  // Unary plus operator
  console.log(numBool);  // Output: 1

  let floatStr = '12.34';
  let floatNum = parseFloat(floatStr);
  console.log(floatNum);  // Output: 12.34
ログイン後にコピー
ログイン後にコピー

- **ブール値に変換中 **
Boolean() 関数を使用して、値をブール値に変換できます。

  let num = 0;
  let bool = Boolean(num);  // Converts to false
  console.log(bool);  // Output: false

  let str = 'hello';
  let boolStr = Boolean(str);  // Converts to true
  console.log(boolStr);  // Output: true
ログイン後にコピー
ログイン後にコピー

### 3. **型強制動作の詳細**

JavaScript の強制動作は混乱を招く可能性があるため、さまざまな操作で型がどのように変換されるかを見てみましょう。

  • 加算 ( ) 演算子 オペランドの 1 つが文字列の場合、JavaScript はもう一方のオペランドを文字列に変換し、文字列の連結を実行します。
  let result = '5' + 1;
  console.log(result);  // Output: '51' (String)
ログイン後にコピー
ログイン後にコピー
  • 減算 (-)、乗算 (*)、および除算 (/) 演算子 JavaScript は、操作を実行する前に両方のオペランドを数値に変換しようとします。
  let isValid = 'hello' == true;  // Implicit coercion
  console.log(isValid);  // Output: true
ログイン後にコピー
ログイン後にコピー
  • 等価 (==) 演算子と厳密等価 (===) 演算子
    • == 型強制による等価性をチェックします。
    • === 型強制を行わずに等価性をチェックします (厳密な等価性)。
  let result = '5' == 5;
  console.log(result);  // Output: true (due to implicit coercion)
ログイン後にコピー
ログイン後にコピー
  • 論理演算子 &&、||、! などの論理演算子オペランドをブール値に強制します。
  let num = 123;
  let str = String(num);  // Using String()
  console.log(str);  // Output: '123'

  let bool = true;
  let strBool = bool.toString();  // Using .toString()
  console.log(strBool);  // Output: 'true'
ログイン後にコピー
ログイン後にコピー

### 4. **虚偽の価値観と真実の価値観**

JavaScript では、ブール値に強制されると、特定の値が偽または真であると見なされます。

  • 偽の値: false、0、"" (空の文字列)、null、未定義、NaN。
  • 真の値: []、{}、1、「hello」などを含む、偽ではないすべての値

例:

  let str = '123';
  let num = Number(str);
  console.log(num);  // Output: 123

  let bool = true;
  let numBool = +bool;  // Unary plus operator
  console.log(numBool);  // Output: 1

  let floatStr = '12.34';
  let floatNum = parseFloat(floatStr);
  console.log(floatNum);  // Output: 12.34
ログイン後にコピー
ログイン後にコピー

### 5. **Null と未定義の処理**

  • Null から数値へ null は、数値に強制されると 0 に変換されます。
  let num = 0;
  let bool = Boolean(num);  // Converts to false
  console.log(bool);  // Output: false

  let str = 'hello';
  let boolStr = Boolean(str);  // Converts to true
  console.log(boolStr);  // Output: true
ログイン後にコピー
ログイン後にコピー
  • 数値に未定義 unknown は、数値に強制されると NaN に変換されます。
  let result = '5' + 1;
  console.log(result);  // Output: '51'
ログイン後にコピー
  • Null からブール値へ ブール値コンテキストでは、null は強制的に false に設定されます。
  let result = '5' - 1;
  console.log(result);  // Output: 4 (Number)

  let resultMul = '5' * 2;
  console.log(resultMul);  // Output: 10 (Number)
ログイン後にコピー

### 6. **toString() メソッド**

すべての JavaScript オブジェクトは、オブジェクトを文字列に変換する toString() メソッドにアクセスできます。たとえば、数値に対して toString() を呼び出すと、その数値の文字列表現が返されます。

例:

  let result = '5' == 5;
  console.log(result);  // Output: true (coercion happens)

  let strictResult = '5' === 5;
  console.log(strictResult);  // Output: false (no coercion)
ログイン後にコピー

こんにちは、アバイ・シン・カタヤットです!
私はフロントエンドとバックエンドの両方のテクノロジーの専門知識を持つフルスタック開発者です。私はさまざまなプログラミング言語やフレームワークを使用して、効率的でスケーラブルでユーザーフレンドリーなアプリケーションを構築しています。
ビジネス用メールアドレス kaashshorts28@gmail.com までお気軽にご連絡ください。

以上がJavaScript での型変換の完全ガイド: 暗黙的な強制と明示的な強制の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート