前書き
JavaScriptでは、data typesを使用して、特定のタイプのデータを分類し、そのタイプに割り当てることができる値と、そのタイプに対して実行できる操作を決定します。
type coercionにより、JavaScriptは多くの値を自動的に変換しますが、期待される結果を得るには、タイプ間で値を手動で変換することがベストプラクティスであることがよくあります。
このチュートリアルでは、数値、文字列、ブール値などのJavaScriptのプリミティブデータ型の変換について説明します。
暗黙的な変換
プログラミング言語として、JavaScriptは予期しない値に対して非常に寛容です。 このため、JavaScriptは予期しない値を完全に拒否するのではなく、変換しようとします。 この暗黙的な変換は、型強制として知られています。
一部のメソッドは、値を使用するために値を自動的に変換します。 alert()
methodはパラメータとして文字列を取りますが、他のタイプを自動的に文字列に変換します。 そのため、メソッドに数値を渡すことができます。
alert(8.5);
上記の行を実行すると、ブラウザはポップアップアラートダイアログボックスを返します。このダイアログボックスには、文字列に変換されていることを除いて、8.5
の値が表示されます。
mathematical operatorsで数値に評価できる文字列を使用する場合、以下の例に示すように、JavaScriptは文字列を数値に暗黙的に変換することで値を処理できることがわかります。
// Subtraction
"15" - "10";
Output5
// Modulo
"15" % "10";
Output5
ただし、すべてのオペレーターが期待どおりに機能するとは限りません。 +
演算子は、加算またはstring concatenationのいずれかを表す可能性があるため、特に問題があります。
// When working with strings, + stands for concatenation
"2" + "3";
Output"23"
+
演算子は多目的であるため、2
と3
の文字列値は、数値文字列であるにもかかわらず、合計されるのではなく、23
の文字列値に連結されます。数5
になります。
あいまいさが存在し、時には予期しない結果を引き起こす可能性があるため、多くの場合、可能な限りコード内のデータ型を明示的に変換することが最善です。 これは、ユーザーからの入力を管理し、エラーを処理するのに役立ちます。
値を文字列に変換する
String()
またはn.toString()
を呼び出すことにより、値を明示的に文字列に変換できます。
String()
関数を使用して、値true
をString()
のパラメーターに渡して、Boolean valueを文字列に変換しましょう。
String(true);
これを行うと、文字列リテラル"true"
が返されます。
Output"true"
または、関数に数値を渡すことができます。
String(49);
その番号の文字列リテラルが返されます。
Output"49"
変数を使用してString()
関数を使用してみましょう。 変数odyssey
に数値を割り当ててから、typeof
演算子を使用して型を確認します。
let odyssey = 2001;
console.log(typeof odyssey);
Outputnumber
この時点で、変数odyssey
には2001
の数値が割り当てられます。これは、数値であることが確認されています。
次に、odyssey
を同等の文字列に再割り当てし、typeof
を使用して、変数の値が数値から文字列に正常に変換されたことを確認します。
odyssey = String(odyssey); // "2001"
console.log(typeof odyssey);
Outputstring
上記の例では、データ型変換後に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 data typesの値を文字列値に明示的に変換して、コードが期待どおりに動作するようにすることができます。
値を数値に変換する
値を数値データ型に変換するときは、 `Number()`メソッドを使用します。 主に、数値テキストの文字列を数値に変換しますが、ブール値も変換できます。
数値の文字列をNumber()
メソッドに渡すことができます。
Number("1984");
文字列は数値に変換され、引用符で囲まれなくなります。
Output1984
文字列を変数に割り当ててから変換することもできます。
let dalmatians = "101";
Number(dalmatians);
Output101
文字列リテラル"101"
は、その変数を介して数値101
に変換されました。
空白の文字列または空の文字列は0
に変換されます。
Number(" "); // returns 0
Number(""); // returns 0
非数値の文字列は、NotaNumberを表すNaN
に変換されることに注意してください。 これには、スペースで区切られた数字が含まれます。
Number("twelve"); // returns NaN
Number("20,000"); // returns NaN
Number("2 3"); // returns NaN
Number("11-11-11"); // returns NaN
ブールデータ型の場合、false
は0
に評価され、true
は1
に評価されます。
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
数値と文字列をブール値に変換すると、バイナリ用語内のデータを評価でき、プログラムの制御フローに活用できます。
結論
このチュートリアルでは、JavaScriptがプリミティブデータ型の変換を処理する方法について説明しました。 型強制のために、データ型は多くの場合暗黙的に変換されますが、プログラムが期待どおりに機能することを保証するためにデータ型を明示的に変換することは良い習慣です。
JavaScriptのデータ型の詳細については、「https://www.digitalocean.com/community/tutorials/understanding-data-types-in-javascript[JavaScriptのデータ型について]」を参照してください。データ型変換の実行方法を確認するには他のプログラミング言語では、「https://www.digitalocean.com/community/tutorials/how-to-convert-data-types-in-python-3[Python 3でデータ型を変換する方法]」をご覧ください。 」