当前位置: 首页 > Web前端 > HTML5

JavaScript错误总结

时间:2023-04-05 18:35:53 HTML5

JavaScript,常见错误类型:SyntaxError语法错误;TypeError类型错误;RangeError范围错误;ReferenceError引用错误;常见错误:错误类型:TypeError1,UncaughtTypeError:Cannotreadproperty'id'ofundefined意思是:属性“”无法读取,属性“”无法设置。例如:上面的错误是undefinedvariablenew_date,当访问或设置一个未定义或空值的属性时就会出现这个错误。错误代码:new_date.id=1;解决方法:varnew_date=newDate();new_date.id=1;2、UncaughtTypeError:Cannotsetproperty'id'ofundefined意思是:property""cannotberead,cannotbesetAttribute""例如:上面的错误是变量new_dateisundefinedornull,当出现这个错误时访问或设置具有未定义(undefined)或空值的属性。错误代码:varnew_date;new_date.id=1;解决方法:varnew_date=newDate();new_date.id=1;3.UncaughtReferenceError:xxisnotdefined意思是:"xx"isnotdefined当你引用一个没有定义的变量时,抛出一个ReferenceError;使用变量时会报错,需要先声明变量。例如:上面的错误是undefinedvariablenew_date解决方法:varnew_date=newDate();4.UncaughtSyntaxError:missingxxafterargumentlist意思是:你错过了一行代码末尾的“xx”符号。例如:上面的错误不见了)错误码:console.log('new_date==',+new_date;解决方法:console.log('new_date==',+new_date);5.UncaughtSyntaxError:Identifier'xx'hasalreadybeendeclared意思是:变量已经被声明过,当变量已经存在时,不需要再声明两次。();letnew_date;解决方法:varnew_date=newDate();//letnew_date;去掉6.UncaughtRangeError:toExponential()argumentmustbebetween0and100表示:值超出了函数的范围例如:上面报错的意思是这个值不在函数toExponential()的范围内错误码:varnum=2.5;console.log(num.toExponential(-1));解决方法:varnum=2.5;console.log(num.toExponential(1));7.UncaughtRangeError:Maximumcallstacksizeexceeded意思是:超出了最大堆栈大小。当你调用非终止递归函数时会出现这个错误。您可以在Chrome开发者控制台中对其进行测试。例如:上面的错误是调用了一个非终止递归函数。这会发生一种错误。使用递归时,设置一个终止递归的条件,否则会无限循环,直到调用栈空间耗尽。错误代码:vararr=newArray();functiona(arr){a(arr);}a(arr);解决方案:vararr=newArray();functiona(arr){if(arr.count>0){returna(arr);;}else{返回;}}a(arr);8.UncaughtTypeError:Peopleisnotaconstructor意思是:使用一个不是构造函数的对象或变量作为构造函数例如:上面的错误是People不是构造函数。错误代码:letPeople='a';新人();解决方案:functionPeople(name,age){this.name=name;this.age=age;}vara=newPeople('a','18');如有错误请指正~~~