JavaScript编程中会出现的错误类型有哪些?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
下面我们来看看在编译是会发现的JavaScript错误是什么?
一、语法错误(Syntax Errors)
语法错误,也称为解析错误,会发生在传统编程语言的编译和JavaScript的解析时。
例1,以下行导致语法错误,因为它缺少右括号。
<script type="text/javascript"> // window.print(; </script>
例2:
123consloe.log(123) // 未捕获的语法错误:意外标识符 console.123) // 未捕获的语法错误: 出乎意料的数字
当JavaScript中出现语法错误时,只有与语法错误包含在同一线程中的代码才会受到影响,而其他线程中的其余代码将被执行,假设它们中的任何内容都不依赖于包含错误的代码。
二、运行时错误(Runtime Errors)
运行时错误(也称为异常)是在JavaScript执行期间(编译/解释之后)发生的错误。
1、引用错误(ReferenceError)
ReferenceError:引用一个不存在的变量时发生的错误;将一个值分配给无法分配的对象,比如对函数的运行结果或者函数赋值就会发生的错误。
例如下面的情况:
// 引用了不存在的变量 a() // 未定义引用错误:a 未定义 console.log(b) // 未引用引用错误:b未定义 // 给一个无法被赋值的对象赋值 console.log("abc") = 1 // 未引用引用错误:左侧赋值无效
2、范围错误(RangeError)
RangeError:是一个在超出有效范围时会发生的错误。主要有以下几种情况:
1)、当数组长度为负数时,发生错误;
2)、当Number对象的方法参数超出范围时,发生错误;
3)、当函数堆栈超过最大值时,发生错误。
例如下面的情况:
// 数组长度为负数 [].length = -5 // 范围错误:无效的数组长度 // Number对象的方法参数超出范围 var num = new Number(12.34) console.log(num.toFixed(-1)) // 范围错误: 在Number.toFixed中,toFixEd()的数字参数必须在0到20之间。 // 说明: toFixed方法的作用是将数字四舍五入为指定小数位数的数字,参数是小数点后的位数,范围为0-20.
3、类型错误( TypeError)
TypeError:变量或参数不是预期类型时发生的错误。
例:在使用new字符串、布尔值等原始类型和调用对象不存在的方法就会抛出这种错误,因为new命令的参数应该是一个构造函数。
// 调用不存在的方法 123() // 类型错误: 123不是一个函数 var o = {} o.run() // 类型错误: o.run 不是一个函数 // new关键字后接基本类型 var p = new 456 // 类型错误: 456 不是构造函数
4、URIError:URL相关函数错误使用
URIError:主要是URL相关函数的参数不正确。
例如下面的情况:
decodeURI("%1") // URIError: 在解码过程中变形了的URI
URI相关参数不正确时抛出的错误,主要涉及以下六个函数:
encodeURI、decodeURI()、encodeURIComponent()、decodeURIComponent()、escape()和unescape()
5、EvalError:eval()函数执行错误
EvalError:在ES5以下的JavaScript中,当eval()函数没有被正确执行时,会抛出evalError错误。
例如下面的情况:
var myEval = eval; myEval("alert('call eval')");
需要注意的是:ES5以上的JavaScript中已经不再抛出该错误,但依然可以通过new关键字来自定义该类型的错误提示。
三、逻辑错误
逻辑错误可能是最难追踪的错误类型。这些错误不是语法或运行时错误的结果。相反,当你在驱动你的脚本的逻辑中犯了错误并且你没有得到你期望的结果时,它们会发生。
看完上述内容,你们掌握JavaScript编程中会出现的错误类型有哪些的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。