次の JavaScript のすべての式は非常に明白です。
var x = 10 + 10;
の値はx
です20
。
x = 10 + '10';
x
この場合の値は、演算子がオーバーロードされている1010
ためです。+
オペランドのいずれかが文字列型の場合、文字列連結が行われ、すべてのオペランドが数値の場合、加算が実行されます。
x = 10 - 10;
x = 10 - '10';
どちらの場合も、実際の減算が実行される前でない場合、演算子がそのようにオーバーロードされておらず、すべてのオペランドが数値に変換さx
れる0
ため、の値はになり-
ます(とにかく私が間違っている場合は明確にすることができます) .
次の式で何が起こるか。
x = '100' - -'150';
の値はx
です250
。これも明らかですが、この式は次の式と同じように見えます。
x = '100' +'150';
その場合、これら 2 つの文字列は連結され、 に割り当て100150
られx
ます。では、この場合、なぜ加算が行われるのでしょうか。
編集 :
+'10' + 5
リターン15
と'a' + + 'b'
リターンaNaN
。誰かが理由を知っていますか?