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


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 相关文章推荐
Array, Array Constructor, for in loop, typeof, instanceOf
Sep 13 Javascript
jQuery实现伸展与合拢panel的方法
Apr 30 Javascript
JavaScript实现带标题的图片轮播特效
May 20 Javascript
浅谈JavaScript超时调用和间歇调用
Aug 30 Javascript
jQuery通过deferred对象管理ajax异步
May 20 Javascript
jQuery实现弹出窗口弹出div层的实例代码
Jan 09 Javascript
微信小程序顶部导航栏滑动tab效果
Jan 28 Javascript
vue使用axios上传文件(FormData)的方法
Apr 14 Javascript
微信小程序 bindtap 传参的实例代码
Feb 21 Javascript
JavaScript实现随机点名程序
Mar 25 Javascript
微信小程序实现时间戳格式转换
Jul 20 Javascript
在vue项目中引用Antv G2,以饼图为例讲解
Oct 28 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处理Json字符串解码返回NULL的解决方法
2014/09/01 PHP
PHP目录与文件操作技巧总结(创建,删除,遍历,读写,修改等)
2016/09/11 PHP
让人期待的2011年度最佳 jQuery 插件分享
2012/03/16 Javascript
日历查询的算法 如何计算某一天是星期几
2012/12/12 Javascript
解决用jquery load加载页面到div时,不执行页面js的问题
2014/02/22 Javascript
jQuery仿天猫实现超炫的加入购物车
2015/05/04 Javascript
javascript实现在网页中运行本地程序的方法
2016/02/03 Javascript
javascript另类方法实现htmlencode()与htmldecode()函数实例分析
2016/11/17 Javascript
Node.js websocket使用socket.io库实现实时聊天室
2017/02/20 Javascript
微信小程序开发教程之增加mixin扩展
2017/08/09 Javascript
vue.js组件vue-waterfall-easy实现瀑布流效果
2017/08/22 Javascript
使用vue实现grid-layout功能实例代码
2018/01/05 Javascript
Vue的事件响应式进度条组件实例详解
2018/02/04 Javascript
vue webpack实用技巧总结
2018/04/24 Javascript
JavaScript中发出HTTP请求最常用的方法
2018/07/12 Javascript
Vue2.5学习笔记之如何在项目中使用和配置Vue
2018/09/26 Javascript
如何为vuex实现带参数的 getter和state.commit
2019/01/04 Javascript
VueJs里利用CryptoJs实现加密及解密的方法示例
2019/04/29 Javascript
卸载vue2.0并升级vue_cli3.0的实例讲解
2020/02/16 Javascript
[03:42]2016国际邀请赛中国区预选赛首日现场玩家采访
2016/06/26 DOTA
python制作小说爬虫实录
2017/08/14 Python
Python使用Scrapy爬虫框架全站爬取图片并保存本地的实现代码
2018/03/04 Python
在python2.7中用numpy.reshape 对图像进行切割的方法
2018/12/05 Python
PYTHON绘制雷达图代码实例
2019/10/15 Python
Django实现简单网页弹出警告代码
2019/11/15 Python
如何使用Python抓取网页tag操作
2020/02/14 Python
纽约复古灵感的现代珠宝品牌:Lulu Frost
2018/03/03 全球购物
师范毕业生求职自荐信
2013/09/25 职场文书
室内设计专业个人的自我评价
2013/12/18 职场文书
大学生饮食配送创业计划书
2014/01/04 职场文书
广播节目策划方案
2014/05/23 职场文书
企业安全生产月活动总结
2014/07/05 职场文书
道士塔读书笔记
2015/06/30 职场文书
十大必看国产动漫排名,魁拔上线,第二曾在日本播出
2022/03/18 国漫
浅谈Vue的computed计算属性
2022/03/21 Vue.js
Spring Security动态权限的实现方法详解
2022/06/16 Java/Android