JS调试方法
2015-10-14 00:07
381 查看
JS调试技术
0、在要调试的代码中随处插入alert()函数
1、将消息记录到控制台
对IE、Firefox、Chrome和Safari来说,则可以通过console对象向JavaScript控制台中写入消息,这个对象具有下列方法。
log(message):将一般消息记录到控制台
info(message):将信息性消息记录到控制台
error(message):将错误消息记录到控制台
warn(message):将警告消息记录到控制台
一种跨浏览器的log函数实现
另一种输出调试消息的方式,就是在页面中开辟一小块区域,用以显示消息。这个区域通常是一个元素,而该元素可以总是出现在页面中,但仅用于调试目的;也可以是一个根据需要动态创建的元素。
抛出错误也是一种调试代码的好办法。如果错误消息很具体,基本上就可以把它当作确定错误来源的依据。
// 基本的assert()函数形式。
0、在要调试的代码中随处插入alert()函数
1、将消息记录到控制台
对IE、Firefox、Chrome和Safari来说,则可以通过console对象向JavaScript控制台中写入消息,这个对象具有下列方法。
log(message):将一般消息记录到控制台
info(message):将信息性消息记录到控制台
error(message):将错误消息记录到控制台
warn(message):将警告消息记录到控制台
<span style="font-size:18px;">function sum(num1, num2){ console.log("Entering sum(), arguments are " + num1 + "," + num2); console.log("Before calculation"); var result = num1 + num2; console.log("After calculation"); console.log("Exiting sum()"); return result; } </span>还有一种方案是使用使用LiveConnect,也就是在JavaScript中运行Java代码。Firefox、Safari和Opera都支持LiveConnect,因此可以操作Java控制台。
一种跨浏览器的log函数实现
<span style="font-size:18px;">function log(message){ if (typeof console == "object"){ console.log(message); } else if (typeof opera == "object"){ opera.postError(message); } else if (typeof java == "object" && typeof java.lang == "object"){ java.lang.System.out.println(message); } } </span>2、将消息记录到当前页面
另一种输出调试消息的方式,就是在页面中开辟一小块区域,用以显示消息。这个区域通常是一个元素,而该元素可以总是出现在页面中,但仅用于调试目的;也可以是一个根据需要动态创建的元素。
<span style="font-size:18px;">function log(message){ var console = document.getElementById("debuginfo"); if (console === null){ console = document.createElement("div"); console.id = "debuginfo"; console.style.background = "#dedede"; console.style.border = "1px solid silver"; console.style.padding = "5px"; console.style.width = "400px"; console.style.position = "absolute"; console.style.right = "0px"; console.style.top = "0px"; document.body.appendChild(console); } console.innerHTML += "<p>" + message + "</p>"; }</span>3、抛出错误
抛出错误也是一种调试代码的好办法。如果错误消息很具体,基本上就可以把它当作确定错误来源的依据。
<span style="font-size:18px;">function divide(num1, num2){ return num1 / num2; } </span>1)使用throw
<span style="font-size:18px;">function divide(num1, num2){ if (typeof num1 != "number" || typeof num2 != "number"){ throw new Error("divide(): Both arguments must be numbers."); } return num1 / num2; }</span>2)使用assert()函数
// 基本的assert()函数形式。
<span style="font-size:18px;">function assert(condition, message){ if (!condition){ throw new Error(message); } } function divide(num1, num2){ assert(typeof num1 == "number" && typeof num2 == "number", "divide(): Both arguments must be numbers."); return num1 / num2; } </span>具体内容可参考《JavaScript高级程序设计(第3版)》
相关文章推荐
- jsp实现将动态网页转换成静态页面的方法
- smartcrop.js智能图片裁剪库
- JavaScript实现的伸展收缩型菜单代码
- JS仿淘宝实现的简单滑动门效果代码
- JS实现的最简Table选项卡效果
- JavaScript+CSS实现仿Mootools竖排弹性动画菜单效果
- JS更改select内option属性的方法
- JS简单限制textarea内输入字符数量的方法
- js获取当天和当天以后的两个礼拜的日期以及日期对应的星期几
- Ember.js 入门指南——action触发变化
- grunt和seajs的打包初体验
- js基础
- 熟悉JS
- jsoncpp接口总结
- JavaScript动态创建table表格
- JavaScript私有变量
- js逻辑运算的特殊之处
- Javascript高级程序设计学习笔记一
- JavaScript高级程序设计之客户端检测之怪癖检测第9.2讲笔记
- javascript基础