最近調(diào)試JS代碼的時候,總是報錯Script error.filename:lineno:0,而且IOS才報錯,安卓并不報錯,連出錯行都沒有,無法定位具體的代碼,很難找到錯誤原因,經(jīng)過多翻調(diào)試,最后對出現(xiàn)這個錯誤提示進行一個匯總。
1、未定義的變量直接用來運算,如:var Lon = '<img src="' + thumb + '">';,此時,如果thumb之前并未定義,那么就會報錯,這種情況常見于一些本以為是全局變量,最后并未定義成全局變量的情況;又或者全局變量是在異步操作中定義的,如果是這種情況,那就很有可能會出現(xiàn)偶爾性的報錯 Script error.filename:lineno:0,偶爾又沒事。
2、if(typeof(thumb)==='undefined'),不建議用這種方法判斷變量是否已經(jīng)定義,typeof是表達式,并不是函數(shù),建議使用if(typeof thumb=='undefined'),而且,typeof thumb得到的結(jié)果是字符串類型的數(shù)據(jù),如:boolen,array,object等,實質(zhì)上是"array","object"。
總結(jié)出來一點就是,全局變量使用的時候要注意有效性。
技術(shù)支持: