在写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 常见的错误类型 小结的详细内容。