logo头像

求知若渴,虚心若愚

JavaScript常见错误类型

我们在做JavaScript开发的时候难免会遇到各种报错,今天我们就来学习一下JavaScript中的常见错误类型。

常见错误类型

  • SyntaxError解析错误
  • ReferenceError引用错误
  • RangeError范围错误
  • TypeError类型错误
  • URIError统一资源标识符函数错误
  • EvalError eval()函数执行错误
  • InternalError内部错误

1. SyntaxError解析错误

代表尝试解析语法上不合法的代码的错误

描述:这个报错是由于我们的语法规则书写不正确造成的,比如变量命名不规范,函数书写不正确等。

1
2
3
4
//变量不能以数字开头
var 3344a = 100;
//函数缺少小括号
function fn {}

2. ReferenceError引用错误

表明一个不存在的变量被引用

描述:当你尝试引用一个未被定义的变量时,将会抛出一个 ReferenceError

1
2
3
4
5
6
7
var a = 100;
//这定义的a,但是打印的是b,由于b没有声明和赋值,那么会提示ReferenceError引用错误
console.log(b);//提示:b is not definded
function fn() {
console.log("fn");
}
fn1();//定义的方法名是fn,调用fn1,也会提示ReferenceError引用错误,fn1 is not definded

3. RangeError范围错误

当一个值不在其所允许的范围或者集合中

描述:当试图传递一个不合法的数字到数组的构造函数时,或者是传递一个number参数给一个范围内不包含该number的函数时,都会引发RangeError

1
2
3
4
5
6
7
8
9
10
//这里传递一个不合法的负数,当做数组的长度,会报错RangeError
var arr = new Array(-2);

//number方法容易出现RangeError的有:
//toPrecision() 方法以指定的精度返回该数值对象的字符串表示
//toFixed() 方法使用定点表示法来格式化一个数
//toExponential() 方法以指数表示法返回该数值字符串表示形式

(5).toExponential(150);
//报错RangeError: toExponential() argument must be between 0 and 100

4. TypeError类型错误

用来表示值的类型非预期类型时发生的错误

描述:当传入函数的操作数或参数的类型并非操作符或函数所预期的类型时,将抛出一个 TypeError 类型错误

1
2
3
var a = 100;
//把a当做函数去调用,会报错Uncaught TypeError: a is not a function
a();

5. URIError统一资源标识符函数错误

用来表示以一种错误的方式使用全局URI处理函数而产生的错误

描述:当向全局URI处理函数传递一个错误的URI时,一个URIError错误会被抛出。
涉及的函数有:encodeURI()、decodeURI()、encodeURIComponent()、decodeURIComponent()、escape()和unescape()

6. EvalError eval()函数执行错误

代表了一个关于evel函数的错误.此异常不再会被JavaScript抛出,但是EvalError对象仍然保持兼容性.

描述:该错误类型已经在ES5中不使用了,只是为了保证与以前代码兼容,才继续保留。

7. InternalError内部错误

表示出现在JavaScript引擎内部的错误。 例如: “InternalError: too much recursion”(内部错误:递归过深)

描述:非标准特性,请尽量不要在开发环境中使用它!

支付宝打赏 微信打赏

赞赏是对我们的肯定!