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


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 相关文章推荐
window.onload和$(function(){})的区别介绍
Oct 30 Javascript
JavaScript判断变量是对象还是数组的方法
Aug 28 Javascript
angular.element方法汇总
Jan 07 Javascript
JavaScript判断字符长度、数字、Email、电话等常用判断函数分享
Apr 01 Javascript
js实现同一个页面多个渐变效果的方法
Apr 10 Javascript
js实现发送验证码后的倒计时功能
May 28 Javascript
js实现文字在按钮上滚动的方法
Aug 20 Javascript
jQuery Timelinr实现垂直水平时间轴插件(附源码下载)
Feb 16 Javascript
bootstrap weebox 支持ajax的模态弹出框
Feb 23 Javascript
React中常见的动画实现的几种方式
Jan 10 Javascript
基于Vue的ajax公共方法(详解)
Jan 20 Javascript
Vue 实现展开折叠效果的示例代码
Aug 27 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 设计模式之 工厂模式
2008/12/19 PHP
谨慎使用PHP的引用原因分析
2012/09/06 PHP
PHP APC配置文件2套和参数详解
2014/06/11 PHP
php安装swoole扩展的方法
2015/03/19 PHP
脚本吧 - 幻宇工作室用到js,超强推荐expand.js
2006/12/23 Javascript
JQuery select控件的相关操作实现代码
2012/09/14 Javascript
node.js中的url.resolve方法使用说明
2014/12/10 Javascript
javascript 闭包详解
2015/02/15 Javascript
js实现PC端根据IP定位当前城市地理位置
2017/02/22 Javascript
基于vue实现分页/翻页组件paginator示例
2017/03/09 Javascript
JS实现AES加密并与PHP互通的方法分析
2017/04/19 Javascript
JS实现简单的点赞与踩功能示例
2018/12/05 Javascript
详解在React项目中安装并使用Less(用法总结)
2019/03/18 Javascript
vue实现短信验证码登录功能(流程详解)
2019/12/10 Javascript
vue 中 elment-ui table合并上下两行相同数据单元格
2019/12/26 Javascript
[05:39]2014DOTA2国际邀请赛 DK晋级胜者组专访战队国士无双
2014/07/14 DOTA
[59:08]DOTA2上海特级锦标赛C组小组赛#2 LGD VS Newbee第一局
2016/02/27 DOTA
使用70行Python代码实现一个递归下降解析器的教程
2015/04/17 Python
通过5个知识点轻松搞定Python的作用域
2016/09/09 Python
详解python中的线程
2018/02/10 Python
几种实用的pythonic语法实例代码
2018/02/24 Python
Python实现的端口扫描功能示例
2018/04/08 Python
Python 抓取微信公众号账号信息的方法
2019/06/14 Python
理肤泉美国官网:La Roche-Posay
2018/01/17 全球购物
英国领先的男装设计师服装独立零售商:Repertoire Fashion
2020/10/19 全球购物
怎样声明一个匿名的内部类
2016/06/01 面试题
动物科学专业毕业生的自我评价
2013/11/29 职场文书
新书吧创业计划书
2014/01/31 职场文书
家长学校实施方案
2014/03/15 职场文书
教师党的群众路线教育实践活动学习笔记
2014/11/05 职场文书
2014年幼儿园德育工作总结
2014/12/17 职场文书
2015年教师自我评价范文
2015/03/04 职场文书
幼儿园综治宣传月活动总结
2015/05/07 职场文书
幼儿园元旦主持词
2015/07/06 职场文书
python基础之爬虫入门
2021/05/10 Python
Python接口自动化之文件上传/下载接口详解
2022/04/05 Python