时间:2021-05-26
编程实际上是一种能随着时间不断飞快进步的技术。但是不管变得多么熟练,你仍然要花一些时间调试你的代码。如果你做过家庭作业,或有过JacaScript编程经验,你会知道相当多的时间是花在调试上。这很正常 - 这只是编程者必须做的事之一。实际上,按照大量的研究,程序员平均百分之五十的时间花在解决代码中的错误。
关键是学会怎样有效地调试你的程序。我有一些技巧可以帮助你解决程序为什么没有象应该的那样运行,或者帮你首先避免写有很多错误的代码:
1.用不同方式打印出变量
2.注意一般性错误
3.编码之前先想好
--------------------------------------------------------------------------------
如果JavaScript没能捕获你的错误,你也没有通过查看代码发现错误,有时打印出变量会对你有所帮助。最简单的方法是象下面这样使用一个alert():
// theGreeting gets a name using getName, then presents
// one or two alert boxes depending on what the name is
//function getName()
{
var first_name = prompt("what's your first name?","");
var last_name = prompt("what's your last name?","");
var the_name = first_name + " " + last_name;
alert("in getName, the_name is: " + the_name);
}
-----------------------------找到错误--------------------------------------------------
1.一般性程序错误
多数错误只是无聊的语法错误。记住关闭那些引号,大括号和小括号会花费很长时间,不过幸运的是 JavaScript自动错误检测器能捕获大部分此类错误。虽然JavaScript错误检测器随着日渐复杂的流览器而不断完善,但是一些错误仍会溜走。下面是一些需要留意的常见错误:
2.混淆变量名或函数名
大写和复数变量和函数名产生的错误令人烦恼地经常出现,有时JavaScript错误检测器不能捕获它们。通过建立和坚持使用一种对变量和函数的命名协定,会大大减少这些麻烦的数量。例如,我全部用小写字母定义变量,并用下划线代替空格(my_variable,the_data, an_example_variable),用内置符号表示函数 (addThreeNumbers(), writeError()等)。我避免使用任何复数,因为我总是忘记那些变量是不是复数。
3.偶然地使用了保留字
一些字不能作为变量名,因为它们已经被JavaScript使用。例如,不能定义一个叫 “if”的变量,因为它实际上是JavaScript的一部分 - 如果使用“if”,你会遇到各种麻烦。当你因为使用命名为“if”的变量而变得疯狂时,一个叫做“document”的变量是很诱人的。不幸的是,“document”是一个JavaScript对象。另一个经常遇到的问题是把变量命名为“name”(窗体元素有“names”属性)。把变量命名为“name”不会总出问题,只是有时 - 这会更使人迷惑 - 这就是避免使用“name”变量的原因。
不幸的是,不同的流览器有不同的保留字,所以没有办法知道该回避哪些字。最安全的办法是避免使用已经成为JavaScript一部分的字和HTML使用的字。如果你因为变量遇到问题,并且不能发现哪儿错了,试着把变量改个名字。如果成功了,你或许就避开了保留字。
4.记住在逻辑判断时应该用两个等号
一些流览器能捕获这种错误,有些却不能。这是一种非常常见的错误,但是如果流览器不能替你指出来,你就很难发现。下面是一个这种错误的例子:
var the_name = prompt("what's your name?", "");
if (the_name = "the monkey")
{
alert("hello monkey!");
} else {
alert("hello stranger.");
}
这段代码将产生“hello monkey!”警告对话框 - 不管你在提示里敲的是什么 - 这不是我们希望的。原因是在if-then语句中只有一个等号,这句话告诉JavaScript你想让一件事等于另一件。假设你在提示中敲的是 “robbie the robot”。最开始,变量the_name的值是“robbie the robot”,但是随后if语句告诉JavaScript你想把the_name设为“the monkey.”。于是JavaScript很高兴地执行你的命令,送一个“true”消息给if-then语句,结果警告对话框每次都出现“hello monkey!”。这种阴险的错误会使你发疯,所以注意使用两个等号。
5.偶然给变量加上了引号,或忘了给字符串加引号
我不时遇到这个问题。JavaScript区分变量和字符串的唯一方法是:字符串有引号,变量没有。下面有一个明显的错误:
var the_name = 'koko the gorilla';
alert("the_name is very happy");
12下一页阅读全文
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
作为跨境电商的卖家,如何打造爆款成为卖家关键的问题。今天为大家分享一篇经验之谈。1、点击率组成部分任何产品,如果上传一段时间后排名到几十页后面去了的话,那么客人
网站建设课堂开课啦!今天,小编向您介绍几种CSS布局技巧,都是多年经验设计师的经验之谈。1.若有疑问立即检测在出错时若能对原始代码做简单检测可以省去很多头痛问题
在CAD里面画图,色彩丰富,但是如果线性的粗细设置的不好的话,打印出来,就不会给人立体的层次感,常常会让人很费脑筋。下面的内容都是个人的经验之谈。 1、鼠
本篇不多啰嗦,直接开始干货内容,都是在京东各种购物凑单用券的经验之谈,本篇内容合计5000字,逻辑性内容较多,建议收藏备用慢慢理解。本文目录如下:1,关于京东领
百度贴吧推广方面的经验之谈我相信有很多知道,今天在这里我就不作多余的赘述了,仅把自己这几天做论坛推广的经验总结说一下吧。 1、寻找目标用户群。 我最近在推广