1. Uncaught TypeError: xxx is not a function
常見原因分析:
- 首先確保這函數(shù)所在的JS內(nèi)容被引入到了頁面
- 確保在調(diào)用該函數(shù)時(shí),函數(shù)已經(jīng)被加載了肴敛」髌唬可以試試在瀏覽器控制臺輸入該方法浪谴,看能否正常運(yùn)行
- 函數(shù)名不能和頁面中的id名相同。一些瀏覽器可以通過在js代碼中指定ID訪問節(jié)點(diǎn)元素仔戈,然后定義的函數(shù)就會被DOM中的元素覆蓋了柠横。
4.對于使用onclick綁定函數(shù)事件時(shí),必須確保href寫成href="javascript:void(0);"或者h(yuǎn)ref=“javascript:;”
2. Cannot read property 'appendChild' of null
常見原因分析: 一般都是由于獲取的節(jié)點(diǎn)不存在導(dǎo)致的平匈。
比如框沟,我原本是這樣的:
先加載了JS,導(dǎo)致執(zhí)行document.body.appendChild時(shí)報(bào)錯(cuò):Cannot read property 'appendChild' of null增炭,
然后我改成了這樣忍燥,先加載DOM,再執(zhí)行JS隙姿,就好了:
3. main.js:126 Uncaught RangeError: Maximum call stack size exceeded
錯(cuò)誤信息的中文意思是:最大堆棧超出了最大值梅垄。一般出現(xiàn)這種情況是使用了遞歸函數(shù)。比如我在解析json數(shù)據(jù)時(shí)输玷,遞歸調(diào)用函數(shù)队丝,可參數(shù)還是原來那個(gè),所以這個(gè)遞歸是永遠(yuǎn)都不會結(jié)束的饲嗽。
這種情況下檢查下自己的遞歸函數(shù)就行了炭玫。
如有問題,煩請批評指正貌虾!
未完待續(xù)......