JS報錯Uncaught?TypeError:?XXX?is?not?a?function的解決方法
今天在學習JS的時候,在學函數(shù)時,發(fā)現(xiàn)了一個有點意思的問題:
在網(wǎng)上找了很多方法,無果,畢竟不是每個人的原因都相同。
再回看了一下筆記,對比了一下代碼,找到了可疑之處:
上面就是我當時看視頻拍下的照片,但是筆記內(nèi)容沒有很完善,當時聽課的時候,還是抱著這個之前學過的心態(tài)去聽的,沒想到晚上自己實踐之后,就給我當頭一棒了。說明,學習心態(tài)還是非常重要的,好在才學到60集而已。
下面是我的代碼:
let a = +prompt(`請輸入第一個數(shù):`) let b = +prompt(`請輸入第二個數(shù):`) // let sum = 0 // console.log(a, b) // 新方法,匿名函數(shù) (function (a, b) { console.log(a + b) })(a, b)
突然發(fā)現(xiàn),我的function少了分號,而我上課的時候,發(fā)現(xiàn)老師有重點說這個問題,這個分號是必須寫的,不然就會報錯。
于是我在后面加上了分號:
去瀏覽器運行,發(fā)現(xiàn)仍舊是報錯的:
然后我就想著會不會是加錯地方了,因為錯誤提示說promp有問題,所以我決定把分號加到function加到前面,如下圖:
在瀏覽器刷新,發(fā)現(xiàn)成了:
所以總得來說,是因為我使用了匿名函數(shù)中的立即執(zhí)行方法,本身就是為了驗證和加強我的學習理解的,沒想到讓我寫了這么久。
最后,附上我的四種方法:
let a = +prompt(`請輸入第一個數(shù):`) let b = +prompt(`請輸入第二個數(shù):`) // let sum = 0 // console.log(a, b) // // 新方法,匿名函數(shù) // ; (function (a, b) { // console.log(a + b) // })(a, b) // 第二種方法 ; (function (a, b) { console.log(a + b) }(a, b)) // //傳統(tǒng)方法,沒有sum // function plus(x, y) { // x = x || 0 // y = y || 0 // console.log(x + y) // } // plus(a, b) // // 傳統(tǒng)方法,有sum: // function plus(a, b) { // a = a || 0 // b = b || 0 // sum = a + b // } // // 先執(zhí)行這個函數(shù),然后再打印 // plus(a, b) // console.log(sum) // //注意: 得有返回值,才能將運行結(jié)果賦給一個值 function plus(a,b){ return a+b } sum = plus(a,b) console.log(sum)
總結(jié)
到此這篇關(guān)于JS報錯Uncaught TypeError: XXX is not a function解決方法的文章就介紹到這了,更多相關(guān)Uncaught TypeError: XXX is not a function內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!