美文网首页
JavaScript的原生错误类型

JavaScript的原生错误类型

作者: ZZY丶 | 来源:发表于2017-10-16 11:34 被阅读0次

    (1)SyntaxError 

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

    例如: 

    var = 4name;       //变量名报错

    console.log 'Hello,World');         //缺少括号

    (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

    (3)RangeError

    RangeError是当一个值超出有效范围时发生的错误。主要有几种情况

    一是数组长度为负数

    二是Number对象的方法参数超出范围,以及函数堆栈超过最大值。

    例如:

    newArray(-1)                                 // RangeError: Invalid array length

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

    (4)TypeError

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

    new123                                               //TypeError: number is not a func

    var obj={};obj.unknownMethod()       // TypeError: obj.unknownMethod 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对象,都是构造函数。开发者可以使用它们,人为生成错误对象的实例。

    newError('出错了!');

    newRangeError('出错了,变量超出有效范围!');

    newTypeError('出错了,变量类型无效!');

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

    相关文章

      网友评论

          本文标题:JavaScript的原生错误类型

          本文链接:https://www.haomeiwen.com/subject/zukkuxtx.html