Error 是通用异常构造器, 所有其他的异常构造器都是它的子构造器
EvalError 在标准中未使用,它只是为了兼容上一版本标准
RangeError 表示一个数值超出了允许的范围
例:
> new Array(-1)
RangeError: Invalid array length
ReferenceError 表示发现了一个非法的引用, 通常这是一个未知的变量
例:
> unknowVariable
ReferenceError: unknowVariable is not defined
SyntaxError 表示产生了一个语法解析错误. 例如,当你使用eval来解析以下代码
例:
> eval(‘3 +’)
SyntaxError: Unexpected end of file
TypeError 表示一个被操作值的实际类型与其期望的类型不一致
例:
> undefined.foo
TypeError: Cannot read property ‘foo’ of undefined
URIError 表示某个全局的URL控制函数的使用不兼容其定义
例:
> decodeURI(‘%2’)
URIError: URI malformed
以下则是异常的属性值:
message
是异常信息
name
是异常的名称
Stack
是栈跟踪.它不是标准的,但很多平台都在使用. 例如,Chrome, Node.js 和 Firefox