序章

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

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

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

暗黙の変換

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

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

alert(8.5);

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

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

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

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

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

+演算子は多目的であるため、2および3の文字列値は、数値文字列であるにもかかわらず、23の文字列値に連結されます。数字5になるように足し合わせるのではなく。

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

値を文字列に変換する

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

String()関数を使用して、値trueString()のパラメーターに渡して、ブール値を文字列に変換しましょう。

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

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

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

ブールデータ型の場合、false0と評価され、true1と評価されます。

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

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

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

結論

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

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