说说如何使用 JavaScript 进行代码调试
发布日期:2021-06-29 21:08:49
浏览次数:2
分类:技术文章
本文共 2007 字,大约阅读时间需要 6 分钟。
1 把消息记录到控制台
IE8、Firefox、Chrome 和 Safari 中可以使用 console 对象向 JavaScript 控制台写入消息,它有这些方法:
- error(message):错误性消息。
- info(message):信息性消息。
- log(message):一般性消息。
- warn(message):警告性消息。
Opera 10.5 之前的版本,是使用 opera.postError() 方法把消息写入控制台的。
可以使用下面的这个函数作为统一写入控制台的接口:
/** * 跨浏览器,向控制台写入消息 * @param message */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); }}
可以在浏览器中安全地使用这个函数:
function sum(num1, num2) { log("Entering sum(), arguments are " + num1 + "," + num2); log("Before calculation"); var result = num1 + num2; log("After calculation"); log("Exiting sum()"); return result;}
注意::在发布之前,务必移除所有的消息。这可以在部署之前,通过编写特定的代码步骤,实现自动清理。不要使用 alert(),因为弹出的警告框会阻止程序的执行;而且在测试异步操作对时间的影响时,使用警告框也会影响测试结果。
2 把消息记录到当前页面
可以在页面中开辟出一小块区域,用于显示消息:
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 += "" + message + "
";}
这种技术在不支持 JavaScript 控制台的 IE7 以及早期版本中,特别有用。
注意::在发布之前,也要移除把错误消息输出到页面中的代码。
3 抛出错误
如果错误消息很具体,那么就可以直接把它当做确定错误来源的依据,比如下面的这个函数:
function divide(num1, num2){ return num1/num2;}
这个函数如果其中的一个参数不是数值,那么就会返回 NaN。所以可以在计算前先进行检测:
function divide(num1, num2){ if(typeof num1 !="number" || typeof num2 !="number"){ throw new Error("divide(): 两个参数都必须是数值") } return num1/num2;}
这个错误消息包含了函数的名称以及导致错误的真正原因,所以如果抛出了这个错误,我们就能立即知道错误的来源以及问题的性质。
大型的应用程序,可以使用下面的这个 assert() 函数抛出自定义错误:
转载地址:https://deniro.blog.csdn.net/article/details/76532467 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2024年04月28日 00时43分59秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Android AsyncTask 异步任务取消
2019-04-30
Asp.net 解决表单提交之后 页面刷新会再次提交表单
2019-04-30
解决js 写入中文乱码
2019-04-30
Java 把日期时间字符串 格式化为Date对象
2019-04-30
Java查找Map中的日期时间里当前时间最远
2019-04-30
安装openfire教程
2019-04-30
Android support v7 ActionBarActivity 过时
2019-04-30
Android Studio 导入第三方库
2019-04-30
Sql Server 查询一段日期内的所有礼拜天
2019-04-30
golang testing
2019-04-30
阅读protobuf-go代码
2019-04-30
golang反射基本准则
2019-04-30
2020-11-30-golang并发模式context
2019-04-30
知名定律摘要-持续更新
2019-04-30
golang value part
2019-04-30
golang-reflect-method-callback
2019-04-30
系统性能和TCP/UDP网络优化-学习大杂烩
2019-04-30
shader入门精要2
2019-04-30
shader入门精要3
2019-04-30