1. Uncaught TypeError: xxx is not a function
常見原因分析:
- 首先確保這函數(shù)所在的JS內(nèi)容被引入到了頁面
- 確保在調(diào)用該函數(shù)時,函數(shù)已經(jīng)被加載了??梢栽囋囋跒g覽器控制臺輸入該方法,看能否正常運(yùn)行
- 函數(shù)名不能和頁面中的id名相同。一些瀏覽器可以通過在js代碼中指定ID訪問節(jié)點(diǎn)元素,然后定義的函數(shù)就會被DOM中的元素覆蓋了。
4.對于使用onclick綁定函數(shù)事件時,必須確保href寫成href="javascript:void(0);"或者h(yuǎn)ref=“javascript:;”
2. Cannot read property 'appendChild' of null
常見原因分析: 一般都是由于獲取的節(jié)點(diǎn)不存在導(dǎo)致的。
比如,我原本是這樣的:

image.png
先加載了JS,導(dǎo)致執(zhí)行document.body.appendChild時報錯:Cannot read property 'appendChild' of null,
然后我改成了這樣,先加載DOM,再執(zhí)行JS,就好了:

image.png
3. main.js:126 Uncaught RangeError: Maximum call stack size exceeded
錯誤信息的中文意思是:最大堆棧超出了最大值。一般出現(xiàn)這種情況是使用了遞歸函數(shù)。比如我在解析json數(shù)據(jù)時,遞歸調(diào)用函數(shù),可參數(shù)還是原來那個,所以這個遞歸是永遠(yuǎn)都不會結(jié)束的。

image.png

image.png
這種情況下檢查下自己的遞歸函數(shù)就行了。
如有問題,煩請批評指正!
未完待續(xù)......