JS错误类型的学习
2015-03-09 16:28
211 查看
摘要: javascript错误类型的详细
(1)SyntaxError
SyntaxError是解析代码时发生的语法错误
(2)ReferenceError
ReferenceError是引用一个不存在的变量时发生的错误。
另一种触发场景是,将一个值分配给无法分配的对象,比如对函数的运行结果或者this赋值。
上面代码对函数console.log的运行结果和this赋值,结果都引发了ReferenceError错误
(3)RangeError
RangeError是当一个值超出有效范围时发生的错误。主要有几种情况,一是数组长度为负数,二是Number对象的方法参数超出范围,以及函数堆栈超过最大值。
(4)TypeError
TypeError是变量或参数不是预期类型时发生的错误。比如,对字符串、布尔值、数值等原始类型的值使用new命令,就会抛出这种错误,因为new命令的参数应该是一个构造函数。
上面代码的第二种情况,调用对象不存在的方法,会抛出TypeError错误。
(5)URIError
URIError是URI相关函数的参数不正确时抛出的错误,主要涉及encodeURI()、decodeURI()、encodeURIComponent()、decodeURIComponent()、escape()和unescape()这六个函数。
(6)EvalError
eval函数没有被正确执行时,会抛出EvalError错误。该错误类型已经不再在ES5中出现了,只是为了保证与以前代码兼容,才继续保留。
以上这6种派生错误,连同原始的Error对象,都是构造函数。开发者可以使用它们,人为生成错误对象的实例。
上面代码表示新建错误对象的实例,实质就是手动抛出错误。可以看到,错误对象的构造函数接受一个参数,代表错误提示信息(message)。
(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)。
相关文章推荐
- JS错误类型的学习
- JavaScript学习点滴—js对象的四种类型的属性、方法的访问
- 奇怪的js问题(JavaScript浮点运算的问题) float类型相乘的有时候 会出现错误!! 注意!!!
- Ferris教程学习笔记:js示例3.1 用typeof查看数据类型
- java struts2入门学习---中文验证、对错误消息的分离、结果(result)类型细节配置
- JS 学习笔记--10---基本包装类型
- Javascript入门学习第二篇 js类型第1/2页
- D3.js学习记录 - 数据类型【转】【新】
- Node.js下自定义错误类型
- js学习小计3-基本类型和引用类型
- 每日学习心得:Js基本数据类型常用方法扩展
- js对象学习笔记-Function类型和对象
- js学习1 —— 类型,值,变量
- JavaScript高级程序设计(第3版)学习笔记3 js简单数据类型
- 【js学习笔记-053】js中的面向对象技术------枚举类型
- struts2系列学习笔记(8)---------------类型转换的错误处理
- JavaScript高级程序设计(第3版)学习笔记3 js简单数据类型
- js浮点类型运算错误解决
- JS 学习笔记--3--数据类型
- JSON-RPC-Java学习之类型映射及js客户端调用