2016-12-27 18 views
0

打印在JavaScript的提示變量返回「南」。打印的提示變量在JavaScript返回「南」

代碼:

var topic = window.prompt("Topic:", ""); 
 
document.write(+ topic);

+2

爲什麼'+'在寫?如果不是 –

+0

@NinaScholz,它不會返回任何 –

+0

刪除'+',它應該工作即可。 –

回答

3

您使用+作爲unary operator,這將字符串轉換與一個數字來編號,而不是字符串,如foo,這不是可轉換。那麼你得到NaN,不是一個數字。

var topic = window.prompt("Topic:", ""); 
 
document.write('input: ' + topic);

+1

謝謝Nina Scholz –

2

在你原來的問題:

document.write(+topic); 

window.prompt返回一個字符串,並一元+操作轉換一個字符串轉換爲數字。

如果你輸入一個非數字字符,它們不能被轉換爲數字,你會得到NaN。如果您輸入的號碼如3,則會輸出3

你的問題的解決方案是簡單地刪除+

document.write(topic); 

編輯完一個問題後,它的工作原理是這樣的:

document.write('Topic ' + topic); 

因爲現在二元+運營商被用作字符串的級聯,代替轉換爲數字。