踩坑:javascript中for迴圈,變數不是Number型別導致for迴圈不執行
阿新 • • 發佈:2019-01-05
情景:
從html獲取4對{起點元素(id記為start)和終點元素(id記為end)},
遍歷起點到終點的所有元素,並打印出元素id(假設id連續)
解決方案:
Number(待轉換數)進行強制轉換
js程式碼:
控制檯:
如上圖控制檯:
第一對兒元素{43,46},進入for迴圈正常列印43,44,45,56;
第二、三對兒元素也分別進入for迴圈正常列印
問題出現:
但是,
執行到start=8,end=10的時候,就不進入for迴圈裡面列印8,9,10了
解決方案:
Number(待轉換數)進行強制轉換
看到第一張圖的“8”,“9”;想到可能是型別的問題,就用Number包住document.getElementById("startParent").firstChild.id強制轉換
問題解決。
教訓:進行數字屬性操作的時候,確保它是個數字
———————————————————————分割線———————————————————————————
自己寫了個小demo驗證,卻發現程式正常執行
for(var i = 0;i <= 1;i++)
{
var str1 = "7";// 字串型別
var str2 = "8";// 字串型別
for(var j = str1;j <= str2;j++)
{
console.info(j);
}
}
控制檯:
有點怪異,歡迎評論交流