supcon
JavaScript 中,常见的错误类型:
SyntaxError 语法错误;TypeError 类型错误;RangeError 范围错误;ReferenceError 引用错误;
常见错误:
错误类型:TypeError
1、Uncaught TypeError: Cannot read property 'id' of undefined
表示:无法读取属性“”, 无法设置属性 “”
例如:上面报错就是未定义变量 new_date,访问或设置未定义(undefined)或null值的属性时会发生这种报错。
错误代码:
new_date.id = 1;
解决方法:
var new_date = new Date(); \nnew_date.id = 1;
2、Uncaught TypeError: Cannot set property 'id' of undefined
表示:无法读取属性“”, 无法设置属性 “”
例如:上面报错就是变量 new_date为undefined或null,访问或设置未定义(undefined)或null值的属性时会发生这种报错。
错误代码:
var new_date;\nnew_date.id = 1;
解决方法:
var new_date = new Date(); \nnew_date.id = 1;
3、Uncaught ReferenceError: xx is not defined
表示:“xx”未定义
当你引用一个没有定义的变量时,抛出一个ReferenceError; 当你使用变量的时候,就会报错,需要先声明此变量。
例如:上面报错就是未定义变量 new_date
解决方法:
var new_date = new Date();
4、Uncaught SyntaxError: missing xx after argument list
表示:你漏写了一行代码最后的“xx”符号。
例如:上面报错就是缺少 )
错误代码:
console.log('new_date==',+new_date;
解决方法:
console.log('new_date==',+new_date);
5、Uncaught SyntaxError: Identifier 'xx' has already been declared
表示:变量已经声明
当变量已经存在时,不需要二次声明。
例如:上面报错就是已经声明了变量 new_date
错误代码:
var new_date = new Date(); \nlet new_date;
解决方法:
var new_date = new Date();\n// let new_date; 去掉
6.Uncaught RangeError: toExponential() argument must be between 0 and 100
表示:取值超出函数范围
例如:上面报错就是取值不在函数toExponential()的范围内
错误代码:
var num = 2.5;\nconsole.log(num.toExponential(-1));
解决方法:
var num = 2.5;\nconsole.log(num.toExponential(1));
7.Uncaught RangeError: Maximum call stack size exceeded
表示:超出了最大的堆栈大小
当你调用一个不终止的递归函数就会发生这种错误。您可以在 Chrome 开发者控制台中进行测试。
例如:上面报错就是调用一个不终止的递归函数就会发生这种错误。使用递归的时候,设定一个条件来终止递归,否则会无限循环,直到用尽调用堆栈空间为止。
错误代码:
var arr = new Array();\nfunction a(arr) {\n a(arr);\n}\na(arr);
解决方法:
var arr = new Array();\nfunction a(arr) {\n if (arr.count0){\n return a(arr);;\n } else {\n return;\n }\n\n\n}\na(arr);
8.Uncaught TypeError: People is not a constructor
表示:使用不是构造器的对象或者变量来作为构造器使用
例如:上面报错就是People不是构造器。
错误代码:
let People = 'a';\nnew People();
解决方法:
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。