JavaScript的错误与调试
来源:互联网 发布:安庆市网络问政 编辑:程序博客网 时间:2024/06/06 05:05
错误与调试
1错误的概念与处理
计算机程序的错误有两种:语法错误和逻辑错误
语法错误:
比如alert拼写错误,写成了alter。
<script> var a = 3 + 4; alert(a); alter(a); a++; alert(a);</script>
运行结果只显示了7,后面的结果没有显示,说明后面的代码没有执行。因为输出7后遇到了语法错误,程序终止执行。
通过开发者工具可以看到遇到的语法错误及其说明。
上例也进一步说明了解释型语言的特点:翻译一条,执行一条,遇到错误提前终止执行。
var b = a + 3;alert(b);
语法错误的发现方法:
(1)开发者工具的console窗口,能显示错误及其说明
(2)try ..............catch 捕获异常
逻辑错误:
程序在语法上没有问题,但是实际的执行结果和预期结果有出入。
<script> /*报名参军的年龄条件:17~24周岁*/ var age = Number(prompt("请问你的年龄是?")); if (17 <= age <= 24){ alert("欢迎你报名参军!"); }else{ alert("抱歉,你不能参军!") }</script>
当输入年龄96或者3,都能报名参军,结果显然是错误的,但执行过程并没有任何语法错误。
2调试的原理、工具和方法
调试的基本原理:
程序的执行是自动的,而且速度非常快,无法了解中间的执行过程。但是几乎所有的开发工具都提供了调试的功能,可以去控制程序的执行节奏,从而可以让开发者看清楚执行的过程。
怎么去控制执行节奏呢?
(1)设置断点
打开开发者工具
在sources页打开源代码
在代码左侧(行号边上)单击即可在该处设置断点
(2)单步执行(step)快捷键F10
每执行一步都会停下来,然后再继续下一步
控制节奏的目的是看清或者了解程序的执行过程,而不仅仅是结果。
怎么看结果呢?
(1)查看程序执行的轨迹,也就是上图中的指示即将要执行的代码指示器,如果轨迹与预期不一致,说明上一步执行的代码出现了逻辑错误。
(2)查看变量、表达式的值
a.在watch窗口添加要查看的变量或表达式,比方输入age
此时,就可以看到变量age的值
b.也可以通过在代码中选中要查看的变量或表达式,右键选择添加到watch
在watch窗口就可以看到添加的变量或者表达式的值。
因为计算机程序的每一步执行的结果都是唯一的、可预期的,同时我们又可以通过上诉手段控制程序的运行节奏并查看程序执行的状态(如轨迹、变量表达式的值),也就是可以看到实际执行结果。那么将实际结果和预期结果对比,如果出现不一致,说明刚刚执行的那一步出现的错误,即定位错误。
一旦定位错误,根据所学知识和经验,应该就很容易分析出错误原因,从而找到解决方案。
再来调试一个程序
<script> var a = prompt("请输入第一边长"); var b = prompt("请输入第二边长"); var c = prompt("请输入第三边长"); var p = (a + b + c) / 2;//计算周长的一半 var s = Math.sqrt(p * (p - a) * (p - b) * (p - c));//海伦公式计算面积 alert(s);</script>
设置断点
运行程序,程序将在预定断点位置停下来
查看变量的值
单步执行p的值
再查看a+b+c的值
a+b+c的值并不是我们预期的12,而是“345”。原来是做了字符串的拼接运算,而不是我们希望的加法,所以是类型问题。
解决的方案就是将输入的数据(字符串)转化为数值
再重新调试,并查看结果
调试工具不仅仅是定位错误的工具,也是一个非常重要的学习工具。
因为调试工具可以让我们直观地看到程序的运行轨迹以及运行状态,有助于我们对于一些抽象只是理解。
- JavaScript的错误与调试
- JavaScript的错误与调试
- JavaScript 错误与调试
- Javascript的错误处理与调试
- javascript的错误调试
- javascript错误处理与调试
- javascript 调试错误的方法
- JavaScript中 错误处理与调试
- 10014---JavaScript--错误处理与调试
- JavaScript笔记:错误处理与调试
- JavaScript错误处理与调试总结
- JavaScript 错误处理与调试——“错误处理”的注意要点
- JavaScript与FireFox的不解之缘——错误处理与调试
- JS的错误与调试
- 调试JavaScript错误的四种解决方案
- Javascript高级程序设计第17章(错误处理与调试)
- 【JavaScript】(4)——错误处理与调试
- javaScript笔记(二十四) 错误处理与调试
- 盘点在 GitHub 上最受欢迎的项目
- caffe基础-06softmax层的配置
- 干货满满的一篇评分的CSS文章
- 将map通过反射转化为实体
- HDU6047 Maximum Sequence(2017多校第2场)
- JavaScript的错误与调试
- Pandas读入Excel数据表格与数据简单处理
- 2017 Multi-University Training Contest
- 每日英语阅读(二十)
- Intent跳转传值(ImageLoader加载图片)
- 2017.07.27回顾 ET和RT比较 高级切片 argsort barplot(yerr=) xgb.plot_importance
- 引用---基本特性
- Android shape相关
- js和servlet之间用json的数据格式进行交互