web-dev-qa-db-ja.com

JavaScriptで追加が機能しない

私はJavascriptを学ぼうとしています。ここでは、次のコードと混同しています。

http://rendera.heroku.com/usercode/eae2b0f40cf503b36ee346f5c511b0e29fc82f9e

x+y関数で問題が発生しています。例えば ​​2+2=225+7=57

だが /*- 作業しています。なぜ+機能しませんか?私を助けてください。よろしくお願いします

21
Theepan K.

変数の一方または両方が数値ではなく文字列です。これにより、+は文字列を連結します。

'2' + 2 === '22';  // true

2 + 2 === 4;  // true

他の算術演算子/ * -は、文字列に対してtoNumber変換を実行します。

'3' * '5' === 15;  // true

文字列を数値に変換する簡単な方法は、単項+演算子を使用することです。

+'2' + 2 === 4;  // true

...または変数:

+x + +y
49
RightSaidFred

+には2つの用途があります。 1つは加算ですが、もう1つは文字列の連結です。変数の一方または両方が文字列の場合、+はそれらを連結します。

文字列を数値にするには、parseIntまたはparseFloatを使用する必要があります。

6
James Montagne

Javascriptでは、+演算子は、そのオペランドのタイプに応じて、加算または連結を実行できます。 +で数値を使用する場合は加算を使用しますが、文字列を+で使用する場合は代わりに連結(文字列を結合)します

3
danwellman

これは毎回うまくいきます

((x*1) + (y*1))
2
chrisrth

追加しようとしている数値が10と12の場合、合計が22であると想定される場合は、次のように実行する必要があります。

+10 + +12

また、数値の一方または両方が文字列の場合、結果は1012のような文字列になる可能性があります。

1
Siddhu

加算演算子は次のように機能します。
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 を確認してください。

0
Dmitri Pavlutin

単項プラスはうまくいくはずです:

var totalVal = (+2) + (+2);

alert(totalVal);
// result 4
0
aravind3