一、错误与调试
1、错误的概念与处理
计算机程序的错误有两种:语法错误和逻辑错误。
①语法错误:比如,alert拼写错误,写成了alter。
<script>
var a = 3 + 4;
alert(a);
alter(a);
a++;
alert(a);
</script>
上面的例子的运行结果只显示了7,后面的结果没有显示,说明后面的代码没有运行。因为在输出7之后遇到了语法错误,程序终止运行。
通过开发者工具可以看到遇到的语法错误:Uncaught RefernaeError:later is not defined.
上面的例子也进一步说明了解释性语言的特点:翻译一条,执行一条,遇到错误提前终止。
语法错误的发现方法:
(1)开发者工具是console窗口能显示错误及其说明。
(2)try······catch捕获异常
②逻辑错误:程序在语法上没有任何问题,但实际的执行结果和预期的结果有出入。
下面这个例子充分的说明了这个问题。
/*报名参军的条件:17~24周岁*/
var age = Number(prompt("请问你的年龄是:"));
if(17 <= age <= 24){
alert("欢迎你报名参军!");
}else{
alert("抱歉,年龄不够,你不能参军!");
}
程序运行之后,当你输入96或者3时,都显示 能报名参军,这显然是错误的,但执行过程中并没有任何语法错误。这是为什么呢?
现在我们来解释一下,调试的基本原理:程序执行时是自动的,而且速度非常快,无法
了解中间的执行过程。但是几乎所有的开发者工具都提供了调试的功能,可以去控制程序的执行节奏,从而可以让开发者看清楚执行的过程。
那么怎样控制执行节奏呢?
(1)设置断点,
(1)打开开发者工具,点击Sources页打开源代码,在代码左侧(行号边上)单击即可在该处设置断点
(2)单步执行(step):每执行一步就会停下来,然后再继续下一步。快捷键:F10。
控制节奏的目的是看清或者了解程序的执行过程,而不仅仅是结果。
2、调试的原理、工具和方法
利用上面的第二个例子,来调试。
(1)查看程序执行的轨迹,也就是上图中的指示即将要执行的代码指示器,如果轨迹与预期不一致,说明上一步执行的代码出现逻辑错误了。
查看变量、表达式的值
a.在watch窗口添加要查看的变量或表达式,比方输入age
此时可以看到变量age的值:
有的代码太长,不方便书写到watch中,这样既就可以选中代码,单击右键,查看选项。
这样在watch窗口就可以看到添加的变量或者表达式的值。
因为计算机程序的每一步执行结果都是唯一的、可预期的,同时又可以通过上述手段控制程序的运行节奏并查看程序执行的状态(如轨迹、变量表达式的值)。也就是可以看到实际的执行结果。那么僵实际结果和预期结果对比出现不一致,说明刚刚执行的那一步出现错误,即定位错误。
一旦定位错误,根据所学知识或经验,应该就很容易分析出原因,从而找到解决方案。
今天主要学习了JS中的错误与调试,希望里面解决的问题,能帮到你。