這可能發生在預期回調函數時,但是代碼返回對象。我的具體情況是function
傳遞給setTimeout
前new
,我只理解了它得益於這樣的回答:https://stackoverflow.com/a/31502293(火狐版本:https://stackoverflow.com/a/20218837)
setTimeout
expects the first parameter to be a function
注意:在JSON缺少報價有時會出現此錯誤會導致逗號被視爲前面字符串的一部分,例如:['test1,'test2']
。
example.html的重現:
<script>
setTimeout(new function() { document.write('test') },0);
</script>
而是點擊右側的VM61:1
(數量自動遞增)鏈接,點擊lef-灰色下拉箭頭/圖標在錯誤圖標和單詞之間的手邊顯示調用堆棧,然後單擊列表中的第一個鏈接(請參閱下面的屏幕截圖)。
這會在調用堆棧上跳一幀,並且通常會突出顯示發生錯誤的整個行。它不會精確定位錯誤的確切位置,但請仔細閱讀此處,瞭解可能在預期回調函數時返回對象的任何內容。
取出new
和錯誤消失!
PS。出現在Internet Explorer 10此錯誤(除非它在兼容性模式下運行)作爲
SCRIPT1007: Expected ']'
example.html, line 1 character 9
而且在Firefox 56
SyntaxError: missing ] after element list[Learn More] example.html:2:8
你在哪裏看到這個錯誤:在瀏覽器控制檯或在您的應用程序日誌? –
我在瀏覽器控制檯中看到了這一點。 –
你能粘貼完整控制檯錯誤嗎? –