关于javascript:JavaScript异常类型

43次阅读

共计 1053 个字符,预计需要花费 3 分钟才能阅读完成。

SyntaxError- 语法错误

语法错误也成为解析谬误。语法错误在任何编程语言中都是最常见的谬误类型,示意不合乎编程语言的语法标准。`JavaScript` 是一门解释性语言,执行一段代码时须要经验 词法剖析 -> 语法分析 -> 语法树 就能够开始解释执行了:词法剖析是将字符流 (`char stream`) 转换为记号流 (`token stream`)、语法分析阶段会将记号流(`token stream`) 生成形象语法树(`AST`)。在这两个阶段,如果 Javascript 引擎发现了预期之外 / 无奈抓换的 `token`,或者 `token` 程序和预期不统一时,就会抛出 `SyntaxError`。因而 `SyntaxError` 应该和其余类型的异样辨别开,此类异样产生在 `JavaScript` 解析 / 编译时,此类异样一旦产生,导致整个 js 文件都无奈执行,而其余异样产生在代码运行时,这一类的谬误会导致在谬误呈现的那一行之后的代码无奈执行,但在那一行之前的代码不会受到影响。

TypeError- 类型谬误

运行时最常见的异样,示意变量或参数不是预期类型,比方 `new` 关键字前面必须为构造函数、`()` 前必须为函数。

ReferenceError- 援用谬误

援用一个不存在的变量时产生的谬误,每当咱们创立或定义一个变量时,变量名称都会写入一个变量存储核心中。这个变量存储核心就像键值存储一样,每当咱们援用变量时,它都去存储中找到 `Key` 并提取并返回 `Value`,如果咱们要找的变量不在存储中,就会抛出 `ReferenceError`。请留神,如果咱们调用的是一个曾经存在的变量的一个不存在的属性,则不会抛出 `ReferenceError`,因为变量自身曾经在存储中了,调用它不存在的属性只会是未定义状态,也就是 `undefined`

RangeError- 边界谬误

示意超出无效范畴时产生的异样,次要的有以下几种状况:
  • 数组长度为正数或超长
  • 数字类型的办法参数超出预约义范畴
  • 函数堆栈调用超过最大值

URIError-URL 谬误

在调用 `URI` 相干的办法中 `URL` 有效时抛出的异样,次要包含 `encodeURI、decodeURI()、encodeURIComponent()、decodeURIComponent()、escape()和 unescape()` 几个函数。

自定义异样

另外,为了满足各种各样的业务需要,除了 `JavaScript` 曾经给定的异样类型,咱们还能够自定义一些异样类型,比方咱们要依据不同的异样类型给用户不同的谬误提醒:

正文完
 0