博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js常见错误类型
阅读量:6963 次
发布时间:2019-06-27

本文共 1446 字,大约阅读时间需要 4 分钟。

(1)SyntaxError

SyntaxError是解析代码时发生的语法错误

// 变量名错误 

var 1a; 

// 缺少括号 

console.log 'hello');

 

(2)ReferenceError

ReferenceError是引用一个不存在的变量时发生的错误。

unknownVariable 

// ReferenceError: unknownVariable is not defined

另一种触发场景是,将一个值分配给无法分配的对象,比如对函数的运行结果或者this赋值。

console.log() = 1 

// ReferenceError: Invalid left-hand side in assignment 

this = 1 

// ReferenceError: Invalid left-hand side in assignment

上面代码对函数console.log的运行结果和this赋值,结果都引发了ReferenceError错误

(3)RangeError

RangeError是当一个值超出有效范围时发生的错误。主要有几种情况,一是数组长度为负数,二是Number对象的方法参数超出范围,以及函数堆栈超过最大值。

new Array(-1) 

// RangeError: Invalid array length 

(1234).toExponential(21) 

// RangeError: toExponential() argument must be between 0 and 20

(4)TypeError

TypeError是变量或参数不是预期类型时发生的错误。比如,对字符串、布尔值、数值等原始类型的值使用new命令,就会抛出这种错误,因为new命令的参数应该是一个构造函数。

new 123 

//TypeError: number is not a func 

var obj = {}; obj.unknownMethod() 

// TypeError: undefined is not a function

上面代码的第二种情况,调用对象不存在的方法,会抛出TypeError错误。

(5)URIError

URIError是URI相关函数的参数不正确时抛出的错误,主要涉及encodeURI()、decodeURI()、encodeURIComponent()、decodeURIComponent()、escape()和unescape()这六个函数。

decodeURI('%2') 

// URIError: URI malformed

(6)EvalError

eval函数没有被正确执行时,会抛出EvalError错误。该错误类型已经不再在ES5中出现了,只是为了保证与以前代码兼容,才继续保留。

以上这6种派生错误,连同原始的Error对象,都是构造函数。开发者可以使用它们,人为生成错误对象的实例。

new Error("出错了!");

new RangeError("出错了,变量超出有效范围!");
new TypeError("出错了,变量类型无效!");

上面代码表示新建错误对象的实例,实质就是手动抛出错误。可以看到,错误对象的构造函数接受一个参数,代表错误提示信息(message)。

 

 

转载于:https://www.cnblogs.com/ranyonsue/p/6560190.html

你可能感兴趣的文章
详解VirtualBox虚拟机的四种网络设置
查看>>
关于学习区块链的推荐内容
查看>>
【腾讯bugly干货分享】HTML 5 视频直播一站式扫盲
查看>>
https原理通俗了解
查看>>
iOS开发debug集锦
查看>>
go-fasthttp源码分析
查看>>
RaspberryPi学习之SD卡文件修改及备份
查看>>
我的友情链接
查看>>
Linux中Tomcat的安装与配置
查看>>
Linux—CentOS7.4-DNS一(搭建DNS服务器)
查看>>
CentOS7.4——LVS负载均衡群集—直接路由模式(LVS-DR)
查看>>
lr迭代
查看>>
Java中对象序列化与反序列化
查看>>
Confluence-企业知识管理与协同软件安装步骤
查看>>
[翻译]Cocos2d-x 2.1.4的配置
查看>>
lstrlenW不是ATL的成员解决方法 (VS2008)
查看>>
Linux环境ffmpeg以及相应解码器安装
查看>>
Spark: Custom UDF Example
查看>>
有关/etc/passwd,/etc/shadow,/etc/group,以及用户管理与查看用户信息的命令知识总结...
查看>>
C#特性
查看>>