我的JavaScript中發生了一些奇怪的事情,我不明白它。誰能解釋一下?JavaScript字符串鑄造問題
var adsl2pSpeed = '9500 - 12500';
alert(adsl2pSpeed);
if (!adsl2pSpeed) {
alert(adsl2pSpeed);
var adsl2pSpeed = 'Unknown';
}
var speed = document.getElementById("PredictedSpeed");
speed.innerHTML = adsl2pSpeed + " b/s";
這會警告「未定義」兩次,並將innerhtml設置爲「未知」。如果我註釋掉它的提示是'9500 - 12500',並將innerHTML設置爲'9500 - 12500'。發生了什麼?該字符串是否作爲對象進行投射,因此它變爲空?
編輯:我實際上將adsl2pSpeed作爲啓動腳本不在函數中註冊。爲了清楚起見,我把它移開了,但可能是這個問題?
測試用例請。查看縮進真正的代碼之間的前兩行... – ThiefMaster
是你的確切代碼?或者是某種功能? – Thilo
不適合我:http://jsfiddle.net/v6D9r/。向我們展示其餘的代碼。順便說一句,在var var adsl2pSpeed ='Unknown'之前,你不需要'var';'...變量adsl2pSpeed已經被聲明。 – Matt