客户端脚本中常常出现的一些问题和调试技巧


Posted in Javascript onJanuary 09, 2007

1.出错情况:语法错误
<div id=div1></div>
<script language="javascript">
document.write("never-online";
</script>
解释:上面的示例是一个典型例子,方法名都要用()括起来()里的是参数。
也许有人不屑一顾,但在论坛中。这种错误不在少数。
Tips:这种问题解决起来比较简单,一般都可以解决。

2.出错情况:引号用法不正确
<script>
s="alert("never-online")";
</script>
解释:在javascript或是vbscript的编程中,引号出错的机率是很大的,不管是有多丰富的编程经验,遇到大量的字符串拼接,或者是一不小心的敲错'("),都会出现“语法错误”或者是“缺少'”。
Tips:在进行大量的字符拼接时,需要注意引号的转义用法。如上面的就可以写成:s="alert(\"never-online\")";或者s='alert("never-online")';
相关链接:js技巧--转义符"\"的妙用 - http://blog.csdn.net/bluedestiny/archive/2006/03/15/625061.aspx

3.出错情况:未知软性错误

<script language="javascript">
cntMax=100;
div=document.createElement("DIV");
document.body.appendChild(div);
var myFun=function() {
for(var i=0;i<cntMax;i++);
div.innerHTML+="<b>i: " +i+ "</b><br/>";
div.innerHtml+="http://www.never-online.net";
}
myFun();
</script>

运行出来,没有提示错误,这给人一个错觉,像类似这种软性错误是比较难找的。
所以平常写程序,必须细心。
Tips:编程时应该注意自己的习惯,像在for(var i=0;i<cntMax;i++);这里,分号如果用了{来括起来,这种情况就完全可以避免,看SDK文档时,要仔细阅读,大小写出错一般都会“对象没有此方法”之类的提示,但在脚本中,对象可以动态的添加方法和属性。所以,上面的div.innerHtml="http://www.never-online.net"不会出错。而div的innerHTML又没有得到值。

4.出错情况:对语言的理解错误
最常见的可能算是this关键字了,这里就举一个例子来说明
this语义:指向当前对象的指针。
例子:
<script>
function a() {
this.m = "never-online";
this.f = function() {
alert(this.m);
}
}
var b = new a();
b.f();
</script>
相信上面这个例子,很多人都理解。this指向的是a()
再看下面这个例子:
<div id=div1>div container - onmouseover handle</div>
<script>
function a() {
this.m = val = 'never-online';
var div = document.getElementById("div1");
div.onmouseover=function() {
alert(this.m);
}
alert(this.m);
}
a();
</script>
这一个例子,有些兄弟可能就不能理解了,仔细看看之后,也可以预测输出结果。
解释:this.m = val = 'never-online'这一句是赋值,其中的this.m中的this指向的是当前对象a();
而div.onmouseover里的this指的对象是document.getElementById("div1")这个对象,(因为div并不属于a对象)即相当于把代码写在这里:
<div id=div1 onmouseover="alert(this.m)">div container - onmouseover handle</div>
因此在div.onmouseover的function里this.m出现undefined并不奇怪。 

Javascript 相关文章推荐
比较简单实用的使用正则三种版本的js去空格处理方法
Nov 18 Javascript
Mootools 1.2教程 输入过滤第一部分(数字)
Sep 15 Javascript
文本框只能选择数据到文本框禁止手动输入
Nov 22 Javascript
JS设置cookie、读取cookie
Feb 24 Javascript
jQuery简单实现仿京东分类导航层效果
Jun 07 Javascript
jQuery 限制输入字符串长度
Jun 20 Javascript
Javascript如何判断数据类型和数组类型
Jun 22 Javascript
javascript如何创建对象
Aug 29 Javascript
JS实现新建文件夹功能
Jun 17 Javascript
前端把html表格生成为excel表格的实例
Sep 19 Javascript
vue+iview写个弹框的示例代码
Dec 05 Javascript
使用Angular CLI进行单元测试和E2E测试的方法
Mar 24 Javascript
Javascript miscellanea -display data real time, using window.status
Jan 09 #Javascript
Javascript - HTML的request类
Jan 09 #Javascript
贴一个在Mozilla中常用的Javascript代码
Jan 09 #Javascript
Javascript-Mozilla和IE中的一个函数直接量的问题
Jan 09 #Javascript
Javascript调试工具(下载)
Jan 09 #Javascript
如何在Mozilla Gecko 用Javascript加载XSL
Jan 09 #Javascript
如何让动态插入的javascript脚本代码跑起来。
Jan 09 #Javascript
You might like
十天学会php(3)
2006/10/09 PHP
使用PHP强制下载PDF文件示例
2014/01/17 PHP
JavaScript CSS修改学习第三章 修改样式表
2010/02/19 Javascript
window.addEventListener来解决让一个js事件执行多个函数
2012/12/26 Javascript
js中window.open打开一个新的页面
2014/08/10 Javascript
jquery ajax后台返回list,前台用jquery遍历list的实现
2016/10/30 Javascript
Vue 固定头 固定列 点击表头可排序的表格组件
2016/11/25 Javascript
使用JavaScript判断用户输入的是否为正整数(两种方法)
2017/02/05 Javascript
jQuery手风琴的简单制作
2017/05/12 jQuery
基于JavaScript实现百度搜索框效果
2020/06/28 Javascript
vue组件Prop传递数据的实现示例
2017/08/17 Javascript
浅谈Angular6的服务和依赖注入
2018/06/27 Javascript
layui插件表单验证提交触发提交的例子
2019/09/09 Javascript
vue中element 的upload组件发送请求给后端操作
2020/09/07 Javascript
Python中的命令行参数解析工具之docopt详解
2017/03/27 Python
Python OpenCV实现图片上输出中文
2018/01/22 Python
Python实现将Excel转换成为image的方法
2018/10/23 Python
python钉钉机器人运维脚本监控实例
2019/02/20 Python
python发送多人邮件没有展示收件人问题的解决方法
2019/06/21 Python
python 线性回归分析模型检验标准--拟合优度详解
2020/02/24 Python
深入了解NumPy 高级索引
2020/07/24 Python
python爬虫请求头设置代码
2020/07/28 Python
python中的对数log函数表示及用法
2020/12/09 Python
HTML5 Canvas如何实现纹理填充与描边(Fill And Stroke)
2013/07/15 HTML / CSS
Monnier Frères美国官网:法国知名奢侈品网站
2016/11/22 全球购物
Genny意大利官网:意大利高级时装品牌
2020/04/15 全球购物
大四学年自我鉴定
2013/11/13 职场文书
优良学风班申请材料
2014/02/13 职场文书
11月升旗仪式讲话稿
2014/02/15 职场文书
学习经验交流会主持词
2014/04/01 职场文书
亲属关系公证书
2014/04/08 职场文书
电钳工人个人求职信
2014/05/10 职场文书
2014-2015学年工作总结
2014/11/27 职场文书
个人自荐书范文
2015/03/09 职场文书
用python自动生成日历
2021/04/24 Python
Redis中一个String类型引发的惨案
2021/07/25 Redis