你应该知道JavaScript中的7种原生错误
嘻嘻发布于2020-04-22
最后更新于2020年3月9日
浏览文章目录
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()
正如我们所说的,没有人可以避免错误。就我们输入代码而言,这是一种稳定的现象。为了解决这个问题,我们需要知道可以抛出的本机错误的类型。我们在这篇文章中列出了它们,并给出了一些例子来说明它们是如何被遇到的。