JavaScript数値と文字列の加算
JavaScriptにおける整数値と文字列の加算について
問題
JavaScriptでは、整数値と文字列を直接加算すると、文字列の連結が行われます。例えば、10
と"20"
を足すと、"1020"
という文字列になります。
解決方法
適切な型変換 (casting) を行うことで、整数値と文字列の加算を正しく実行できます。
方法1: parseInt()
関数を使用する
parseInt()
関数は、文字列を整数に変換します。
var num1 = 10;
var num2 = "20";
// parseInt()を使用して文字列を整数に変換
var result = num1 + parseInt(num2);
console.log(result); // 出力: 30
方法2: Number()
関数を使用する
Number()
関数は、文字列を数値に変換します。
var num1 = 10;
var num2 = "20";
// Number()を使用して文字列を数値に変換
var result = num1 + Number(num2);
console.log(result); // 出力: 30
方法3: +
演算子で強制的に数値型に変換する
+
演算子を単独で使用すると、文字列を数値に変換することができます。
var num1 = 10;
var num2 = "20";
// +演算子で強制的に数値型に変換
var result = num1 + +num2;
console.log(result); // 出力: 30
注意
parseInt()
関数は基数を指定することができます。例えば、16進数の文字列を整数に変換するには、parseInt("FF", 16)
のように使用します。- 文字列に数値以外の文字が含まれている場合、
parseInt()
やNumber()
関数はNaN (Not a Number)を返します。
var num1 = 10;
var num2 = "20";
// parseInt()を使用して文字列を整数に変換
var result = num1 + parseInt(num2);
console.log(result); // 出力: 30
var num1 = 10;
var num2 = "20";
// Number()を使用して文字列を数値に変換
var result = num1 + Number(num2);
console.log(result); // 出力: 30
var num1 = 10;
var num2 = "20";
// +演算子で強制的に数値型に変換
var result = num1 + +num2;
console.log(result); // 出力: 30
例4: jQueryの例
var num1 = 10;
var num2 = $("#myElement").text(); // 要素のテキストを取得
// parseInt()を使用して文字列を整数に変換
var result = num1 + parseInt(num2);
$("#result").text(result); // 結果を要素に表示
解説
- 結果を要素に表示するには、
$("#result").text(result)
を使用しています。 - jQueryの例では、
$("#myElement").text()
で要素のテキストを取得し、parseInt()
を使用して整数に変換しています。 parseInt()
関数とNumber()
関数は、文字列を数値に変換します。
代替方法1: テンプレートリテラルを使用する
テンプレートリテラルは、文字列をより柔軟に操作するための構文です。
var num1 = 10;
var num2 = "20";
var result = `${num1 + parseInt(num2)}`;
console.log(result); // 出力: 30
代替方法2: String.prototype.concat()
メソッドを使用する
concat()
メソッドは、文字列を連結します。
var num1 = 10;
var num2 = "20";
var result = (num1 + parseInt(num2)).toString().concat(" is the result.");
console.log(result); // 出力: 30 is the result.
replace()
メソッドは、文字列内の特定の文字列を置き換えます。
var num1 = 10;
var num2 = "20";
var result = "The result is: " + (num1 + parseInt(num2)).toString();
console.log(result.replace("The result is: ", "")); // 出力: 30
- テンプレートリテラルは、文字列をより簡潔に記述することができます。
javascript jquery casting