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


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 相关文章推荐
JavaScript 无符号右移运算符
Apr 17 Javascript
动态表格Table类的实现
Aug 26 Javascript
JavaScript 对Cookie 操作的封装小结
Dec 31 Javascript
window.navigate 与 window.location.href 的使用区别介绍
Sep 21 Javascript
基于豆瓣API+Angular开发的web App
Jan 02 Javascript
JS清除选择内容的方法
Jan 29 Javascript
jquery读写cookie操作实例分析
Dec 24 Javascript
Extjs 点击复选框在表格中增加相关信息行
Jul 12 Javascript
jQuery插件FusionCharts实现的2D饼状图效果【附demo源码下载】
Mar 03 Javascript
使用jQuery实现购物车结算功能
Aug 15 jQuery
Bootstrap 中data-[*] 属性的整理
Mar 13 Javascript
socket io与vue-cli的结合使用的示例代码
Nov 01 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
Win7下手动安装apache2.2、php5.4笔记
2015/04/03 PHP
网页开发中的容易忽略的问题 javascript HTML中的table
2009/04/15 Javascript
jQuery 连续列表实现代码
2009/12/21 Javascript
JavaScript四种调用模式和this示例介绍
2014/01/02 Javascript
js实现鼠标移到链接文字弹出一个提示层的方法
2015/05/11 Javascript
详解NodeJs开发微信公众号
2018/05/25 NodeJs
Vue项目部署在Spring Boot出现页面空白问题的解决方案
2018/11/26 Javascript
JQueryDOM之样式操作
2019/03/27 jQuery
说说Vuex的getters属性的具体用法
2019/04/15 Javascript
使用jquery-easyui的布局layout写后台管理页面的代码详解
2019/06/19 jQuery
解决微信小程序scroll-view组件无横向滚动的问题
2020/02/04 Javascript
layui使用及简单的三级联动实现教程
2020/12/01 Javascript
浅谈python和C语言混编的几种方式(推荐)
2017/09/27 Python
Python+selenium实现截图图片并保存截取的图片
2018/01/05 Python
解决tensorflow1.x版本加载saver.restore目录报错的问题
2018/07/26 Python
Python3 Post登录并且保存cookie登录其他页面的方法
2018/12/28 Python
使用PyQtGraph绘制精美的股票行情K线图的示例代码
2019/03/14 Python
PyQt5实现简易计算器
2020/05/30 Python
Python HTML解析器BeautifulSoup用法实例详解【爬虫解析器】
2019/04/05 Python
python yield和Generator函数用法详解
2020/02/10 Python
使用python实现CGI环境搭建过程解析
2020/04/28 Python
解决python调用自己文件函数/执行函数找不到包问题
2020/06/01 Python
python实现批量命名照片
2020/06/18 Python
利用HTML5 Canvas API绘制矩形的超级攻略
2016/03/21 HTML / CSS
什么是唯一索引
2015/07/05 面试题
Java基础知识面试题
2014/03/25 面试题
英语演讲稿范文
2014/01/03 职场文书
政治表现评语
2014/05/04 职场文书
青春无悔演讲稿
2014/05/08 职场文书
幼儿园六一儿童节活动方案
2014/08/26 职场文书
学习焦裕禄精神践行三严三实心得体会
2014/10/13 职场文书
学院党委班子四风问题自查报告及整改措施
2014/10/25 职场文书
公路局群众路线教育实践活动第一阶段工作汇报
2014/10/25 职场文书
网上祭英烈活动总结
2015/02/04 职场文书
幼儿园开学报名通知
2015/07/16 职场文书
深入浅析python3 依赖倒置原则(示例代码)
2021/07/09 Python