1. 程式人生 > >踩坑:javascript中for迴圈,變數不是Number型別導致for迴圈不執行

踩坑:javascript中for迴圈,變數不是Number型別導致for迴圈不執行

情景:

從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);
        }
    }

控制檯:


有點怪異,歡迎評論交流