JavaScript 易出现的错误总结

JavaScript 易出现的错误总结

JavaScript 中,常见的错误类型:

  • SyntaxError 语法错误;
  • TypeError 类型错误;
  • RangeError 范围错误;
  • ReferenceError 引用错误;

常见错误:

错误类型:TypeError

1、Uncaught TypeError: Cannot read property 'id' of undefined

表示:无法读取属性“**”, 无法设置属性 “**”

JavaScript 易出现的错误总结

例如:上面报错就是未定义变量 new_date,访问或设置未定义(undefined)或null值的属性时会发生这种报错。

错误代码:

new_date.id = 1;

解决方法:

var new_date = new Date();  
new_date.id = 1;

2、Uncaught TypeError: Cannot set property 'id' of undefined

表示:无法读取属性“**”, 无法设置属性 “**”

JavaScript 易出现的错误总结

例如:上面报错就是变量 new_date为undefined或null,访问或设置未定义(undefined)或null值的属性时会发生这种报错。

错误代码:

var new_date;
new_date.id = 1;

解决方法:

var new_date = new Date();  
new_date.id = 1;

3、Uncaught ReferenceError: ** is not defined

表示: “**”未定义

当你引用一个没有定义的变量时,抛出一个ReferenceError; 当你使用变量的时候,就会报错,需要先声明此变量。

JavaScript 易出现的错误总结

例如:上面报错就是未定义变量 new_date

解决方法:

var new_date = new Date();  

4、Uncaught SyntaxError: missing ** after argument list

表示:你漏写了一行代码最后的“**”符号。

JavaScript 易出现的错误总结

例如:上面报错就是缺少 )

错误代码:

console.log('new_date==',+new_date;

解决方法:

console.log('new_date==',+new_date);

5、Uncaught SyntaxError: Identifier '**' has already been declared

表示:变量已经声明

当变量已经存在时,不需要二次声明。

JavaScript 易出现的错误总结

例如:上面报错就是已经声明了变量 new_date

错误代码:

var new_date = new Date(); 
let new_date;

解决方法:

var new_date = new Date();
// let new_date; 去掉

 6.Uncaught RangeError: toExponential() argument must be between 0 and 100

表示:取值超出函数范围

JavaScript 易出现的错误总结

 

 

例如:上面报错就是取值不在函数toExponential()的范围内

错误代码:

var num = 2.5;
console.log(num.toExponential(-1));

解决方法:

var num = 2.5;
console.log(num.toExponential(1));

7.Uncaught RangeError: Maximum call stack size exceeded

表示:超出了最大的堆栈大小

JavaScript 易出现的错误总结

 

当你调用一个不终止的递归函数就会发生这种错误。您可以在 Chrome 开发者控制台中进行测试。

例如:上面报错就是调用一个不终止的递归函数就会发生这种错误。使用递归的时候,设定一个条件来终止递归,否则会无限循环,直到用尽调用堆栈空间为止。

错误代码:

var arr = new Array();
function a(arr) {
a(arr);
}
a(arr);

解决方法:

var arr = new Array();
function a(arr) {
if (arr.count>0){
return a(arr);;
} else {
return;
}

}
a(arr);

8.Uncaught TypeError: People is not a constructor

表示:使用不是构造器的对象或者变量来作为构造器使用

JavaScript 易出现的错误总结

 

例如:上面报错就是People不是构造器。

错误代码:

let People = 'a';
new People();

解决方法:

function People(name, age) {
this.name = name;
this.age = age;
}
var a = new People('a','18');

 

 

如有错误,欢迎指正 ~ ~ ~

 

上一篇:ndk开发环境!腾讯Android开发面试记录,分享一点面试小经验


下一篇:移动开发!美团点评APP在移动网络性能优化的实践,深度好文