小tips:ECMA-262定义的7种错误类型

七种错误类型如下:

  • Error
  • EvalError
  • RangeError
  • ReferenceError
  • SyntaxError
  • TypeError
  • URIError
其中,Error是基类型(其他六种类型的父类型),其他类型继承自它。Error类型很少见,一般由浏览器抛出的。这个基类型主要用于开发人员抛出自定义错误。

new Array(-2); // 抛出RangeError(范围)
// 错误信息为:RangeError: invalid array length(无效的数组的长度)
// RangeError错误一般在数值超出相应范围时触发
 
var box = a;  // 抛出ReferenceError(引用)
// 错误信息为:ReferenceError: a is not defined(a是没有定义的)
// ReferenceError通常访问不存在的变量产生这种错误
 
a $ b;   // 抛出SyntaxError(语法)
// 错误信息为:SyntaxError: missing ; before statement(失踪;语句之前)
// SyntaxError通常是语法错误导致的
 
new 10;   // 抛出TypeError(类型 )
// 错误信息为:TypeError: 10 is not a constructor(10不是一个构造函数)
// TypeError通常是类型不匹配导致的
 
EvalError类型表示全局函数eval()的使用方式与定义的不同时抛出,但实际上并不能产生这个错误,所以实际上碰到的可能性不大。

在使用encodeURI()和decodeURI()时,如果URI格式不正确时,会导致URIError错误。但因为URI的兼容性非常强,导致这种错误几乎见不到。
alert(encodeURI('某某某'));

 

posted @ 2021-02-19 20:38  风雨后见彩虹  阅读(146)  评论(0编辑  收藏  举报