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