JS常见的报错类型

在学习js的过程中我们会遇到很多大大小小的错误提示
解决错误前,首先要学会阅读报错信息

eg:Uncaught TypeError: ... is not a function

Uncaught 表示没有被catch语句捕获到的错误
TypeError 是错误类型
... is not a function 是消息体

整体意思就是: 代码尝试将...当作函数来使用,但是该...并不是一个函数

1.Uncaught TypeError: Cannot read property '' of undefined

常见的一种是在渲染 UI 组件时对于状态的初始化操作不当,当你读取一个未定义的对象的属性或调用其方法时,这个错误会在 Chrome 中出现。

2.TypeError: ‘undefined’is not an object

这是在 Safari 中读取属性或调用未定义对象上的方法时发生的错误,Safari 使用了不同的错误消息提示语。

3.TypeError: 'null' is not an object
  这是在 Safari 中读取属性或调用空对象上的方法时发生的错误,Safari 使用了不同的错误消息提示语。

undefined 通常是一个尚未分配的变量,而 null 表示该值为空。 要验证它们不相等,请尝试使用严格的相等运算符 ===

这种错误可能发生场景是:在加载元素之前尝试在 JavaScript 中使用元素。 因为 DOM API 对于空白的对象引用返回值为 null。

4.(unknown): Script error
  当未捕获的 JavaScript 错误(通过window.onerror处理程序引发的错误,而不是捕获在try-catch中)被浏览器的跨域策略限制时,会产生这类的脚本错误。这是一种浏览器安全措施,旨在防止跨域传递数据,否则将不允许进行通信。

5.TypeError: Object doesn’t support property
  这是您在调用未定义的方法时发生在 IE 中的错误。 您可以在 IE 开发者控制台中进行测试。

6.TypeError: ... is not a function
  调用未定义的函数时,在 Chrome 中产生的错误

7.Uncaught RangeError: Maximum call stack
  当你调用一个不终止的递归函数时或者将值传递给超出范围的函数,会报出的错,检查函数的递归调用,确保函数不是无限递归的

  1. TypeError: Cannot read property ‘length’of undefined
      因为读取未定义变量的长度属性,通常会在数组中找到定义的长度,但是如果数组未初始化或者变量名称在另一个上下文中隐藏,则可能会遇到此错误。
      var testArray = ["Test"];
      function testFunction(testArray) {
        for (var i = 0; i < testArray.length; i++) {
          console.log(testArray[I]);
        }
      }
      testFunction();
      当你用参数声明一个函数时,这些参数变成了函数作用域内的本地参数。这意味着即使你函数外有名为 testArray 的变量,在一个函数中具有相同名字的参数也会被视为本地参数。

9.Uncaught TypeError: Cannot set property ... of undefined
  尝试访问一个未定义的变量时,它总是返回 undefined,我们不能获取或设置任何未定义的属性。

10.ReferenceError: ... is not defined
  当您尝试访问未定义的变量或超出当前范围的变量时,会引发此错误。

11.Uncaught exception: ReferenceError: Cannot assign to ‘this’
  尝试给一个不能被赋值的变量赋值时将发生该错误,确保不给函数函数的返回值或 this 关键字赋值。

12.Uncaught TypeError: Converting circular structure toJSON
  该错误总是发生在使用 JSON.stringify 序列化一个存在循环引用的对象时,移除将要被转换为 JSON 字符串对象内部的循环引用。

13.Unexpected token ;
  通常发生在缺少括号或分号时,该错误提示的行号有时并不能指向正确的位置

14.Uncaught SyntaxError: Unexpected token ILLEGAL
  字符串字面量缺少闭合的引号,确保所有字符串都包含闭合的引号。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 函数和对象 1、函数 1.1 函数概述 函数对于任何一门语言来说都是核心的概念。通过函数可以封装任意多条语句,而且...
    道无虚阅读 4,702评论 0 5
  • 函数只定义一次,但可能被执行或调用任意次。JS函数是参数化的,函数的定义会包括一个称为形参的标识符列表,这些参数在...
    PySong阅读 574评论 0 0
  • 函数只定义一次,但可能被执行或调用任意次。JS函数是参数化的,函数的定义会包括一个称为形参的标识符列表,这些参数在...
    PySong阅读 878评论 0 0
  • 函数只定义一次,但可能被执行或调用任意次。JS函数是参数化的,函数的定义会包括一个称为形参的标识符列表,这些参数在...
    PySong阅读 341评论 0 0
  • 第5章 函数和函数式编程 5.1 引言函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数...
    VIVAFT阅读 1,004评论 0 5