常见错误:
- 回归基础:
1、JavaScript是大小写敏感的,所以请检查你的大小写情况。
2、如果没有使用var来声明全局变量,它就会变成一个全局变量,那么它的值就可以被其它代码重写(无论是你的脚本还是其它页面中的脚本都能做这种操作)
3、如果无法访问一个变量的值,请检查它是否不在作用域内,比如它是在其他函数中声明的。
4、不要在变量名中使用保留字和横线
5、检查并确保单双引号是成对的
6、检查并确保变量值中的引号已经转义
7、检查并确保HTML中的id属性的值是唯一的
- 缺少或多余的字符:
1、每条语句都应该以分号结尾
2、检查并确保没有缺少的右花括号或右括号
3、检查并确保逗号没有出现,}和,)这种意外的用法
4、需要测试的条件语句要添加到括号内
5、检查并确保调用函数时没有缺少参数
6、undefined和null不是一回事。null是针对对象而言,undefined则针对属性,方法或变量。
7、检查并确保脚本已经加载就绪(特别是来自CDN的文件)
8、检查各个脚本文件之间是否存在冲突。
- 数据类型错误
1、使用=并不能判断值是否匹配,而是会对变量赋值,应当使用==
如果在检查值是否匹配,请尝试使用严格比较来同时检查数据类型(使用===而不是==)
2、switch语句中的值类型并不是宽松的,它们会被强制转换
一旦switch语句找到匹配的case,就会执行该case后面的所有代码,知道遇到break和return为止
3、replace()方法只能替换掉第一个匹配项。如果想替换掉所有匹配项,请使用全局标识
4、如果在使用parselnt()方法,可能需要传递基数(即用来表示数字的位数,包括0在内)
解决方法:
- 换个浏览器:有些问题是浏览器特定的,换个浏览器来测试代码,看看到底是谁导致了问题。
- 输出序号:向控制台输出数字,这样就能看到都记录了哪些数字,它们能告诉你代码在出错之前执行到了什么位置。
- 精简代码:移除部分代码,精简到不能再精简的位置。可以直接将这些代码删除,也可以使用多行注释把它们注释掉。
- 解释代码:程序员经常会在向其他人解释代码时找到问题的解决方案。
- 搜索:Stack Overflow是一个面向程序员的问答网站。或使用诸如Google、Baidu或DuckDuckGo等传统搜索引擎
- 代码演讲场:如果想在论坛中就问题代码求助,除了将代码贴到帖子里之外,还可以将代码添加到代码演练场网站(比如JSBin.com、JSFiddle.com或Dabblet.com),然后将链接发表到论坛中。还有一些流行的游乐场,比如CSSDeck.com和CodePen.com——但它们更加注重展示说明。
- 验证工具:有许多在线验证工具可以帮助你找到代码中的错误:
JavaScript:http://www.jslint.com
JSON:http://www.jshint.com
jQuery:Chrome Web Store 有一个jQuery调试器插件。