JavaScript编程中会出现的错误类型有哪些
JavaScript编程中会出现的错误类型有哪些?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
古浪ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联建站的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:028-86922220(备注:SSL证书合作)期待与您的合作!
下面我们来看看在编译是会发现的JavaScript错误是什么?
一、语法错误(Syntax Errors)
语法错误,也称为解析错误,会发生在传统编程语言的编译和JavaScript的解析时。
例1,以下行导致语法错误,因为它缺少右括号。
例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编程中会出现的错误类型有哪些的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!
网页题目:JavaScript编程中会出现的错误类型有哪些
当前URL:http://cdiso.cn/article/igiiip.html