• 技术文章 >web前端 >js教程

    JS 常见的错误类型 小结

    韦小宝韦小宝2017-11-25 09:48:47原创574
    在写js代码时出现错误是领头疼的,对于一个js刚入门的小白来说,js出现错误可能要找上很久,心态都蹦了。让我们一起来看看这篇文章吧

    js常见错误类型

    (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面试题

    原生js实现可移动的提示div框源码

    适合PHP初学者和程序员的html/css/js 中文手册

    以上就是JS 常见的错误类型 小结的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:javascript 小结 类型
    上一篇:JS实现玫瑰效果 下一篇:JavaScript的数组去重方法
    Web大前端开发直播班

    相关文章推荐

    • Angular如何对请求进行拦截封装?• 怎么获取Node性能监控指标?获取方法分享• react如何实现hooks?必须依赖 Fiber 么?• ie8是否支持es6• 浅析Angular中怎么用 Api 代理

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网