syntaxerror是什么错误_你应该知道JavaScript中的5种原生错误

从浏览器控制台到运行 Node.js 的机器的终端,我们可以遇到各种各样的错误。

这篇文章主要概述了我们在 JS 开发过程中可能遇到的错误类型。我们可以通过错误类型快速区分,定位问题

译文参考[1]

RangeError

当一个数字超出了允许的值范围时,就会抛出该值。例如

const arr = [90,88]
arr.length=90**99

我们有一个数组,arr 有两个元素。接下来,我们尝试将数组扩展为包含 90**99 == 2.9512665430652753e+193 个元素。这个数字远远超过了可以增长到的大小数组。运行它会抛出一个 RangeError.

d16f0544bfee57f3a44dbee4138dd275.png

看另外一个常见例子:栈溢出

function foo() {
 foo()
}
foo()
2fde13326f45a49994b0993bfda6d18c.png

ReferenceError

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

const cat = "cat"
console.log(cat)
console.log(dog)

我们有一个变量 cat 初始化为“cat”。接下来,我们引用了 cat 变量和 dog 变量。cat 变量存在,dog 变量不存在。cat 将返回“cat”,而 dog 将抛出一个引用错误, 因为在环境记录中找不到 dog 这个名称。当对变量/项的引用被破坏时,将引发此错误。即变量/项不存在。

bb5502f123e35862852dc966c2039b25.png

SyntaxError

这是我们遇到的最常见的错误。当我们键入 JS 引擎无法理解的代码时,就会发生这个错误。即“语法错误”

let cat h = "cat"

单独的 h 是什么?d1188e5aea58886f12257156c37b7fa8.png

语法错误在解析/编译期间发生。

TypeError

当其他 NativeError 对象都不是失败原因时候,使用 TypeError 指示不成功的操作。当对错误的数据类型执行操作时,会发生类型错误。例如,如果我们试着像这样把数字转换成大写

const num = 123
num.toUpperCase()

toUpperCase 函数需要一个字符串数据类型,所以上面代码会报错。

9885b1e440fc968bbf3bd1072419edac.png

如果我们在对象、布尔值、null、未定义的数据类型上调用 toUpperCase 函数,我们将得到类型错误,因为它操作的是错误的数据类型。

URIError

JS 中的 URI (Uniform Resource Indicator)具有如下功能:decodeURI, decodeURIComponent 等。如果我们用错误的参数调用它们中的任何一个,我们将得到一个 URIError

decodeURI("%")

decodeURI,获取 URI 的未编码版本。%不是正确的 URI,因此抛出了一个 URIError。当 URI 的编码或解码出现问题时,就会抛出 URIError。c80c8a5b19ca2d81e141b0d452245901.png

因此,无论何时在您的终端或浏览器中抛出错误,您现在都可以轻松地确定错误发生的位置和方式,使用它,您可以编写更好的、更少出错的代码。

参考资料

[1]

译文参考: https://blog.bitsrc.io/types-of-native-errors-in-javascript-you-must-know-b8238d40e492

文末彩蛋

扫码回复,"  2020    " 获得最新前端,后端,大数据,人工智能,PHP等 视频教程资料云盘链接。

f8458e3a458e551036ff24c25be5e17b.png

编程·思维·职场
欢迎扫码关注
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值