慕课前端入门-js错误调试与处理
1.语法错误
就是不复合js语法的错误。出现语法错误,控制台会报错并告知出错的位置
常见的语法错误:
- 1.符号少打、多打、错打
- 2.使用了不合法的变量名
- 3.语句错误
2.运行时错误
代码没有语法错误,而在运行时才发生的错误。
常见的运行时错误有:
- ReferenceError:变量引用异常触发
- TypeError:类型使用错误时触发
- 获取为初始化变量的属性或方法
- 调用类型错误
- RangeError:不太常见,一般会在递归爆栈时触发,即递归深度太深,一般2014层。
function a(){
a();
}
区分语法错误与运行时错误:
- 语法错误,无论如何都不可能运行成功
- 运行时错误是有可能运行成功的
3.try...catch
- finally不管怎样,都会运行
- 无法包裹语法错误代码块
- 错误的冒泡(不断上抛错误)
示例
<script type="text/javascript">
function getUserInput(msg){
var input = prompt(msg);
var parsed = parseInt(input);
if(parsed != parsed){
return input;
}else{
return parsed;
}
}
function multiple(a, b){
if((typeof a != 'number')||(typeof b != 'number')){
throw new Error('arguments must be number');
}else{
return a*b;
}
}
var c;
var a = getUserInput("");
var b = getUserInput("");
try{
c = multiple(a,b);
alert(c);
}catch(e){
alert("请输入2个数字");
}finally{
alert("加工资,没戏");
}
</script>
4.逻辑错误
计算结果不符合预期