序章

JavaScriptでは、データ型を使用して、特定の種類のデータを分類し、その種類に割り当てることができる値と、その種類に対して実行できる操作を決定します。

型強制により、JavaScriptは多くの値を自動的に変換しますが、期待される結果を得るには、多くの場合、型間で値を手動で変換するのがベストプラクティスです。

このチュートリアルでは、数値、文字列、ブール値など、JavaScriptのプリミティブデータ型を変換する方法について説明します。

暗黙の変換

プログラミング言語として、JavaScriptは予期しない値に対して非常に耐性があります。 このため、JavaScriptは予期しない値を完全に拒否するのではなく、変換しようとします。 この暗黙の変換は、型強制として知られています。

一部のメソッドは、値を使用するために値を自動的に変換します。 alert()メソッドはパラメーターとして文字列を取りますが、他のタイプを自動的に文字列に変換します。 したがって、メソッドに数値を渡すことができます。

alert(8.5);

上記の行を実行すると、ブラウザはポップアップアラートダイアログボックスを返します。 8.5 そのために文字列に変換されていることを除いて、値。

数学演算子で数値に評価できる文字列を使用する場合、以下の例に示すように、JavaScriptは文字列を数値に暗黙的に変換することで値を処理できることがわかります。

// Subtraction
"15" - "10";
Output
5
// Modulo
"15" % "10";
Output
5

ただし、すべてのオペレーターが期待どおりに機能するわけではありません。 The + 演算子は、加算または文字列連結のいずれかを示す可能性があるため、特に問題があります。

// When working with strings, + stands for concatenation
"2" + "3";
Output
"23"

以来 + 演算子は多目的であり、の文字列値は 23、数値文字列であるにもかかわらず、の文字列値に連結されます 23 数になるために足し合わせるのではなく 5.

あいまいさが存在し、予期しない結果が生じる場合があるため、コード内のデータ型を可能な限り明示的に変換するのが最善の場合がよくあります。 これは、ユーザーからの入力の管理とエラーの処理に役立ちます。

値を文字列に変換する

いずれかを呼び出すことにより、値を明示的に文字列に変換できます String() また n.toString().

とともに String() 関数、値を渡すことによってブール値を文字列に変換しましょう true のパラメータに String().

String(true);

これを行うと、文字列リテラル "true" 返されます。

Output
"true"

または、関数に数値を渡すこともできます。

String(49);

その番号の文字列リテラルが返されます。

Output
"49"

を使ってみましょう String() 変数で関数します。 変数に数値を割り当てます odyssey 次に、 typeof タイプをチェックする演算子。

let odyssey = 2001;
console.log(typeof odyssey);
Output
number

この時点で、変数 odyssey の数値が割り当てられます 2001、これは番号であることが確認されています。

それでは、再割り当てしましょう odyssey 同等の文字列に変換してから、 typeof 変数の値が数値から文字列に正常に変換されたことを確認します。

odyssey = String(odyssey);	// "2001"
console.log(typeof odyssey);
Output
string

上記の例では、次のことを確認しています。 odyssey データ型変換後の文字列値と同等になるように再割り当てされました。

使用できます n.toString() 似たような方法で。 交換可能 n 変数付き:

let blows = 400;
blows.toString();

変数 blows 文字列として返されます。

Output
"400"

または、変数ではなく括弧内に値を入れることもできます。 n.toString():

(1776).toString();			// returns "1776"
(false).toString();			// returns "false"
(100 + 200).toString();		// returns "300"

を使用して String() また n.toString() コードが期待どおりに動作することを保証するために、ブール値または数値データ型の値を文字列値に明示的に変換できます。

値を数値に変換する

値を数値データ型に変換するときは、 Number()方法。 主に、数値テキストの文字列を数値に変換しますが、ブール値を変換することもできます。

数値の文字列をに渡すことができます Number() 方法:

Number("1984");

文字列は数値に変換され、引用符で囲まれなくなります。

Output
1984

文字列を変数に割り当ててから変換することもできます。

let dalmatians = "101";
Number(dalmatians);
Output
101

文字列リテラル "101" 数に変換されました 101 その変数を介して。

空白の文字列または空の文字列はに変換されます 0.

Number(" ");	// returns 0
Number("");		// returns 0

非数値の文字列はに変換されることに注意してください NaN これはN ot a Numberの略です。 これには、スペースで区切られた数字が含まれます。

Number("twelve");	// returns NaN
Number("20,000");	// returns NaN
Number("2 3");		// returns NaN
Number("11-11-11");	// returns NaN

ブールデータ型の場合、 false 評価します 0true 評価します 1.

Number(false);		// returns 0
Number(true);		// returns 1

The Number() メソッドは、非数値データ型を数値に変換します。

値をブール値に変換する

数値または文字列をブール値に変換するには、 Boolean() メソッドが使用されます。 これは、たとえば、ユーザーがテキストフィールドにデータを入力したかどうかを判断するのに役立ちます。

数値など、空と解釈される値 0、空の文字列、または未定義の値または NaN また null に変換されます false.

Boolean(0);			// returns false
Boolean("");		// returns false
Boolean(undefined);	// returns false
Boolean(NaN);		// returns false
Boolean(null);		// returns false

他の値はに変換されます true、空白で構成される文字列リテラルを含みます。

Boolean(2000);		// returns true
Boolean(" ");		// returns true
Boolean("Maniacs");	// returns true

ご了承ください "0" 文字列リテラルはに変換されます true 空でない文字列値であるため、次のようになります。

Boolean("0");	// returns true

数値と文字列をブール値に変換すると、バイナリ用語内のデータを評価でき、プログラムの制御フローに活用できます。

結論

このチュートリアルでは、JavaScriptがプリミティブデータ型の変換を処理する方法について説明しました。 型の強制により、多くの場合、データ型は暗黙的に変換されますが、プログラムが期待どおりに機能することを保証するために、データ型を明示的に変換することをお勧めします。

JavaScriptのデータ型の詳細については、「JavaScriptのデータ型について」を参照してください。 他のプログラミング言語でデータ型変換がどのように行われるかを確認するには、「 Python3でデータ型を変換する方法」を参照してください。