Chrome控制台報錯個人總結(不定時更新)


  

      最近開始使用Chrome控制台檢測代碼錯誤,對於經常碰到的報錯做一個匯總,免得每次遇到都要重新想一遍策略,錯誤原因,重復勞動,浪費時間。

 

  由於不是每個錯誤都能碰到,以下僅列出個人寫代碼時經常碰到的報錯,以及個人理解與解決辦法。隨着時間的增長,遇到其他錯誤時再更新。

 

  

Chrome控制台報錯匯總:

 

 

 

  1、 Failed to execute 'appendChild' on 'Node': parameter 1 is not of type 'Node'

      在'節點'上執行函數'appendChild'失敗:不是節點

      原因:要插入的內容不是節點,無法插入。

      解決辦法:返回檢查准備插入內容的節點屬性。若要插入純文本,請使用document.createTextNode()進行文本節點創建(我犯的錯誤,囧)。

 

  2、Invalid or unexpected token

      無效的符號

    原因:多見於插入中文符號,如‘;’。

       解決辦法:根據報錯行提示,返回編輯器查找符號錯誤進行修改。

 

  3、2 arguments required, but only 1 present.系列

      需要2個參數,當前只有1個參數

    原因:函數方法中必需的參數沒有寫全。例如setAttribute(attr,val),必需兩個參數都寫全。

    解決方法:檢查所調用函數的所需參數值,填寫完整。

 

  4、 XXX(變量名) is not defined

       變量沒有被創建

     原因:引用的變量名寫錯,或者在let及const聲明,對變量初始化與賦值前引用了變量。

        解決辦法:① 查找變量在環境中的位置,確保調用位於變量聲明后;

           ② 確認變量名沒有打錯;

 

  5、Identifier XXX(變量名) has already been declared

    變量已經被聲明

     原因:變量名重復(使用var聲明的話,不會出現此錯誤)。

        解決方法:換個變量名。

 

  6、 Assignment to constant variable

        給一個常量配值

     原因:變量為const聲明的常量,無法對常量值進行修改。

     解決辦法:將const聲明修改為let或var聲明

 

  7、Exception: DOMException: Blocked a frame with origin "null" from accessing a cross-origin frame.

    阻止了一個域為null的frame頁面訪問另一個域為null的頁面

    原因:打開本地頁面時,頁面中存在多個frame框架,造成了跨域訪問

    解決辦法:localhost訪問本地頁面

 

  8、Uncaught DOMException: Failed to execute 'webkitMatchesSelector' on 'Element': '[object HTMLBodyElement]' is not a valid selector.

    在Element元素上執行webkitMatchesSelector方法失敗:[object HTMLBodyElement]不是合理參數

    原因:Element.matchesSelector方法只接收CSS選擇符為參數,跟querySelector傳入的參數一致

    解決辦法:改變參數

 

  9、XXX call super constructor in derived class before accessing 'this' or returning from derived constructor.

    使用了繼承的class類在使用前沒有調用super導入

    原因:使用class繼承時,必須在constructor函數中使用super

    解決辦法:在contructor中調用super()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM