私はJavascriptを学ぼうとしています。ここでは、次のコードと混同しています。
http://rendera.heroku.com/usercode/eae2b0f40cf503b36ee346f5c511b0e29fc82f9e
x+y
関数で問題が発生しています。例えば 2+2=22
、5+7=57
だが /
、*
、-
作業しています。なぜ+
機能しませんか?私を助けてください。よろしくお願いします
変数の一方または両方が数値ではなく文字列です。これにより、+
は文字列を連結します。
'2' + 2 === '22'; // true
2 + 2 === 4; // true
他の算術演算子/ * -
は、文字列に対してtoNumber
変換を実行します。
'3' * '5' === 15; // true
文字列を数値に変換する簡単な方法は、単項+
演算子を使用することです。
+'2' + 2 === 4; // true
...または変数:
+x + +y
+
には2つの用途があります。 1つは加算ですが、もう1つは文字列の連結です。変数の一方または両方が文字列の場合、+
はそれらを連結します。
文字列を数値にするには、parseInt
またはparseFloat
を使用する必要があります。
Javascriptでは、+演算子は、そのオペランドのタイプに応じて、加算または連結を実行できます。 +で数値を使用する場合は加算を使用しますが、文字列を+で使用する場合は代わりに連結(文字列を結合)します
これは毎回うまくいきます
((x*1) + (y*1))
追加しようとしている数値が10と12の場合、合計が22であると想定される場合は、次のように実行する必要があります。
+10 + +12
また、数値の一方または両方が文字列の場合、結果は1012のような文字列になる可能性があります。
加算演算子は次のように機能します。
1)少なくとも1つのオペランドが文字列の場合、別のオペランドが文字列に変換され、連結が実行されます。
1 + "2" // "12"
"2" + "3" // "23"
"2" + null // "2null", null is converted to "null"
2)その他の場合、両方のオペランドが数値に変換されます。
1 + null // 2, null is converted to 0
1 + undefined // NaN, undefined is converted to NaN
詳細については、投稿 JavaScriptの加算演算子demystified を確認してください。
単項プラスはうまくいくはずです:
var totalVal = (+2) + (+2);
alert(totalVal);
// result 4