你应该知道JavaScript中的7种原生错误

JavaScript中常见的7种错误类型, 了解这些错误类型,在项目开发过程中可以更快的解决问题,提供项目开发的效率。

1. RangeError

当一个数字超出了允许的值范围时,就会抛出这个错误。
例子:

const l = console.log
const arr = [60,59]
arr.length=10**100

2. ReferenceError

当对变量/项的引用被破坏时,将引发此错误。即变量/项不存在。

const l=console.log
const cat = "cat"
cat
dog

3.SyntaxError

这是我们遇到的最常见的错误。当我们键入JS引擎可以理解的代码时,就会发生这个错误。
此错误在解析期间由JS引擎捕获。JS引擎有不同的阶段,我们的代码是通过之前,我们看到这些结果在终端上。

  • 标记拆分
  • 语法分析
  • 解释

标记化将代码的源代码分解为单独的单元。在这个阶段,数字、关键字、文字、运算符被分类并单独标记。接下来,生成的标记流将被传递到解析阶段,解析阶段由解析器处理。这就是从令牌流生成AST的地方。AST是代码结构的抽象表示。在标记化和解析这两个阶段中,如果我们代码的语法/源代码不符合JS的语法规则,就会导致阶段失败并抛出SyntaxError。

const l = console.log
let cat h = "cat"

4. TypeError

当操作的变量不是所期望的类型时就会发生TypeError

const num = 123
num.toUpperCase()

5.URIError

这表明其中一个全局URI处理函数是以与其定义不兼容的方式使用的。
JS中的URI(统一资源指示器)具有如下功能:decodeURI、decodeURIComponent等。

decodeURI("%")
//URIError: URI malformed

6.EvalError

这用于在使用全局eval()函数时识别错误。

7. InternalError

这个错误发生在JS引擎内部,特别是当它有太多的数据要处理,堆栈增长超过其临界限制。

function foo() {
 foo()
}
foo()

正如我们所说的,没有人可以避免错误。就我们输入代码而言,这是一种稳定的现象。为了解决这个问题,我们需要知道可以抛出的本机错误的类型。我们在这篇文章中列出了它们,并给出了一些例子来说明它们是如何被遇到的。

程序员必须知道的国家码列表
Php7版本后的新特性