ほとんどの場合、演算子と関数は、それらに与えられた値を正しい型に自動的に変換します。
たとえば、 alert
任意の値を自動的に文字列に変換して表示します。数学的演算は値を数値に変換します。
値を予期される型に明示的に変換する必要がある場合もあります。
オブジェクトについてはまだ話していません
この章では、オブジェクトについては説明しません。ここでは、プリミティブについてのみ説明します。
後でオブジェクトについて学習した後、「オブジェクトからプリミティブへの変換」の章で、オブジェクトがどのように適合するかを見ていきます。
文字列変換は、値の文字列形式が必要な場合に発生します。
たとえば、 alert(value)
値を表示するために実行されます。
String(value)
関数を呼び出して、値を文字列に変換することもできます。
値を true にします。 アラート(値のタイプ); // ブール値 値 = 文字列(値); // 現在の値は文字列「true」です アラート(値のタイプ); // 弦
文字列の変換はほとんど明らかです。 false
"false"
になり、 null
"null"
になります。
数学関数や式の数値変換は自動的に行われます。
たとえば、除算/
数値以外に適用する場合:
アラート( "6" / "2" ); // 3、文字列は数値に変換されます
Number(value)
関数を使用して、 value
数値に明示的に変換できます。
str = "123" とします。 アラート(文字列の種類); // 弦 let num = Number(str); // 数値は 123 になります アラート(数値の種類); // 番号
通常、明示的な変換は、テキスト フォームなどの文字列ベースのソースから値を読み取るが、数値の入力が必要な場合に必要です。
文字列が有効な数値ではない場合、そのような変換の結果はNaN
になります。例えば:
let age = Number(「数値の代わりに任意の文字列」); アラート(年齢); // NaN、変換に失敗しました
数値変換ルール:
価値 | なる… |
---|---|
undefined | NaN |
null | 0 |
true and false | 1 と0 |
string | 先頭と末尾の空白 (スペース、タブt 、改行n などを含む) は削除されます。残りの文字列が空の場合、結果は0 になります。それ以外の場合、数値は文字列から「読み取られ」ます。エラーによりNaN 返されます。 |
例:
アラート(番号(" 123 ") ); // 123 alert( Number("123z") ); // NaN (「z」の数値読み取りエラー) alert( 数値(true) ); // 1 alert( 数値(偽) ); // 0
ここでは、 null
とundefined
動作が異なることに注意してください。 null
0 になり、 undefined
はNaN
になります。
ほとんどの数学演算子もこのような変換を実行します。これについては次の章で説明します。
ブール変換が最も単純です。
これは論理演算で発生します (後で条件テストやその他の同様の処理を行います) が、 Boolean(value)
を呼び出して明示的に実行することもできます。
変換ルール:
0
、空の文字列、 null
、 undefined
、 NaN
など、直観的に「空」である値はfalse
になります。
他の値はtrue
になります。
例えば:
アラート( Boolean(1) ); // 真実 アラート( ブール値(0) ); // 間違い alert( Boolean("hello") ); // 真実 アラート( Boolean("") ); // 間違い
注意: ゼロを含む文字列"0"
はtrue
です
一部の言語 (つまり PHP) は、 "0"
false
として扱います。ただし、JavaScript では、空でない文字列は常にtrue
です。
アラート( Boolean("0") ); // 真実 アラート( Boolean(" ") ); // スペースも true (空でない文字列はすべて true)
最も広く使用されている 3 つの型変換は、文字列への変換、数値への変換、およびブール値への変換です。
String Conversion
– 何かを出力するときに発生します。 String(value)
で実行できます。通常、プリミティブ値の場合、文字列への変換は明らかです。
Numeric Conversion
– 数学演算で発生します。 Number(value)
で実行できます。
変換は次のルールに従います。
価値 | なる… |
---|---|
undefined | NaN |
null | 0 |
true / false | 1 / 0 |
string | 文字列は「そのまま」読み取られ、両側の空白類 (スペース、タブt 、改行n などを含む) は無視されます。空の文字列は0 になります。エラーによりNaN 返されます。 |
Boolean Conversion
– 論理演算で発生します。 Boolean(value)
で実行できます。
ルールに従います:
価値 | なる… |
---|---|
0 、 null 、 undefined 、 NaN 、 "" | false |
他の値 | true |
これらのルールのほとんどは理解しやすく、覚えやすいものです。人がよく間違いを犯す注目すべき例外は次のとおりです。
undefined
、 0
ではなく、数値としてのNaN
です。
"0"
および" "
のようなスペースのみの文字列は、ブール値として true になります。
オブジェクトについてはここでは扱いません。 JavaScript についてさらに基本的なことを学習した後、オブジェクトのみに特化したオブジェクトからプリミティブへの変換の章でそれらについて再度説明します。