3 回答

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超6個(gè)贊
您需要在將兩個(gè)值相加之前將它們轉(zhuǎn)換為數(shù)字,這樣您將得到加法而不是串聯(lián)。
document.getElementById("Sum").innerHTML = +document.getElementById('n1').value + +document.getElementById('n2').value ;

TA貢獻(xiàn)1809條經(jīng)驗(yàn) 獲得超8個(gè)贊
您需要使用 parseInt 指令將輸入值轉(zhuǎn)換為 int 數(shù)據(jù)類型。這是代碼:
<script>
function pr() {
var foobar = 100;
<!-- works -->
<!-- document.getElementById("Sum").innerHTML = +document.getElementById('n1').value ; works -->
<!-- works -->
<!-- document.getElementById("Sum").innerHTML = +document.getElementById('n2').value ; works -->
<!-- works -->
<!-- document.getElementById("Sum").innerHTML = +document.getElementById('n1').value +foobar ; -->
<!-- concatenates as strings: why? -->
document.getElementById("Sum").innerHTML = parseInt(document.getElementById('n1').value) +parseInt(document.getElementById('n2').value) ;
}
</script>

TA貢獻(xiàn)1869條經(jīng)驗(yàn) 獲得超4個(gè)贊
你+在那里使用兩種不同類型的 s 。前兩個(gè):
<!-- works -->
<!-- document.getElementById("Sum").innerHTML = +document.getElementById('n1').value ; works -->
<!-- works -->
<!-- document.getElementById("Sum").innerHTML = +document.getElementById('n2').value ; works -->
執(zhí)行的操作是leftSide = +expression
這是一元加運(yùn)算符,它將非數(shù)字強(qiáng)制轉(zhuǎn)換為數(shù)字。
在第三個(gè)中:
<!-- works -->
<!-- document.getElementById("Sum").innerHTML = +document.getElementById('n1').value +foobar ; -->
執(zhí)行的操作是leftSide = +expression1 + expression2
使用一元加expression1將其轉(zhuǎn)換為數(shù)字。但and+之間不是一元加法,而是加法/串聯(lián)。當(dāng)在兩個(gè)表達(dá)式之間使用時(shí),如果兩者都是數(shù)字,則它們會(huì)相加。在這里,在 的一元加之后,它是一個(gè)數(shù)字,并且也是一個(gè)數(shù)字,所以它們被加在一起。expression1expression2+.valuefoobar
但在
document.getElementById("Sum").innerHTML = +document.getElementById('n1').value +document.getElementById('n2').value
現(xiàn)在,正確的表達(dá)式是字符串而不是數(shù)字。+僅當(dāng)兩邊都是數(shù)字時(shí)才相加。someNumber + someString結(jié)果串聯(lián)。
如果要加,+請(qǐng)先確保兩邊都是數(shù)字。
- 3 回答
- 0 關(guān)注
- 188 瀏覽
添加回答
舉報(bào)