今天做flash時,發(fā)現(xiàn)一個bug,搞了半天沒想通為什么
首先,我在確定是訪問數(shù)組出問題后,就到處看和此數(shù)組相關系的變量等有什么邏輯錯誤,找了半天發(fā)現(xiàn)沒有邏輯錯誤,我就納悶了,直到突然看到這句代碼
我相temp.pop();可能在temp為空是返回一個undefined,而undefined再 -1 那么就是NaN
我測試了一下,發(fā)現(xiàn)果然pointPose[NaN]可以返回pointPose[0]的值,也就是說NaN在此處可以當0使用...
汗,這是個多么讓人討厭的隱患,雖然記得以前看過NaN的介紹,不過使用起來碰到的也比較少,考慮的時候往往會忽略了這一點...這次正好碰到,把自己的教訓拿出來給大家一個提醒
首先,我在確定是訪問數(shù)組出問題后,就到處看和此數(shù)組相關系的變量等有什么邏輯錯誤,找了半天發(fā)現(xiàn)沒有邏輯錯誤,我就納悶了,直到突然看到這句代碼
sn = temp.pop()-1;
return pointPose[sn];
return pointPose[sn];
我相temp.pop();可能在temp為空是返回一個undefined,而undefined再 -1 那么就是NaN
我測試了一下,發(fā)現(xiàn)果然pointPose[NaN]可以返回pointPose[0]的值,也就是說NaN在此處可以當0使用...
汗,這是個多么讓人討厭的隱患,雖然記得以前看過NaN的介紹,不過使用起來碰到的也比較少,考慮的時候往往會忽略了這一點...這次正好碰到,把自己的教訓拿出來給大家一個提醒