JavaScript调试之console.log调试的一个小技巧分享


Posted in Javascript onAugust 07, 2017

前言

对于JavaScript程序的调试,相比于alert(),使用console.log()是一种更好的方式,原因在于:alert()函数会阻断JavaScript程序的执行,从而造成副作用;

alert弹出框需要点击确认比较麻烦,而console.log()仅在控制台中打印相关信息,因此不会造成类似的顾虑。

最重要的是alert只能输出字符串,不能输出对象里面的结构,console.log()可以接受任何字符串、数字和JavaScript对象,可以看到清楚的对象属性结构,在ajax返回json数组对象时调试很方便。

//兼容Firefox/IE/Opera使用console.log
if(!window.console){
window.console = {log : function(){}};
}
window.console = window.console || {}; 
console.log || (console.log = opera.postError);

下面分享两张打印出来的信息图片:

JavaScript调试之console.log调试的一个小技巧分享

上面简单的介绍了console.log调试,下面本文将给大家分享一个JavaScript中console.log调试的小技巧,话不多说,来一起看看详细的介绍:

console出正确的值

我们直接来看这一段代码

var obj = {
 name: '小傻子',
 age: 12
}
console.log(obj)
obj.name = '大傻子'

很明显我在第四行的位置添加了console是想查看obj在第四行的时候的值。

但是结果并不如意会打印出

{name: "大傻子", age: 12}

究其原因,是因为obj为引用型变量,console后面的操作同样会影响到console的内容。

我们看一下这一段代码

var obj = {
 name: '小傻子',
 age: 12
}
console.log(obj.name)
obj.name = '大傻子'

这个时候打印的结果就是预期的小傻子

解决方案

我们不可能去打印obj的所有属性,因为这是不现实的。我们还是希望打印obj但是得到在当前位置的结果,我下面贴出自己的解决方案

console.log(JSON.parse(JSON.stringify(obj)))

通过JSON的方法进行深拷贝是我知道的最简单有效的方法

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
Extjs Gird 支持中文拼音排序实现代码
Apr 15 Javascript
js简易namespace管理器 实例代码
Jun 21 Javascript
javascript获取鼠标点击元素对象(示例代码)
Dec 20 Javascript
js 判断图片是否加载完以及实现图片的预下载
Aug 14 Javascript
JS实现倒计时和文字滚动的效果实例
Oct 29 Javascript
Bootstrap精简教程
Nov 27 Javascript
js跨域资源共享 基础篇
Jul 02 Javascript
jQuery实现自动调用和触发某个事件的方法
Nov 18 Javascript
详解vue-cli + webpack 多页面实例应用
Apr 25 Javascript
Node.js 使用递归实现遍历文件夹中所有文件
Sep 18 Javascript
javascript标准库(js的标准内置对象)总结
May 26 Javascript
vue中选中多个选项并且改变选中的样式的实例代码
Sep 16 Javascript
react native仿微信PopupWindow效果的实例代码
Aug 07 #Javascript
jquery+css实现简单的图片轮播效果
Aug 07 #jQuery
bootstrap table表格客户端分页实例
Aug 07 #Javascript
基于JS递归函数细化认识及实用实例(推荐)
Aug 07 #Javascript
react native实现往服务器上传网络图片的实例
Aug 07 #Javascript
使用Node.js实现简易MVC框架的方法
Aug 07 #Javascript
ES6新增的math,Number方法
Aug 06 #Javascript
You might like
缅甸的咖啡简史
2021/03/04 咖啡文化
smarty内置函数foreach用法实例
2015/01/22 PHP
PHP5.3以上版本安装ZendOptimizer扩展
2015/03/27 PHP
基于JQuery的asp.net树实现代码
2010/11/30 Javascript
jquery 动态创建元素的方式介绍及应用
2013/04/21 Javascript
JS getAttribute和setAttribute(取得和设置属性)的使用介绍
2013/07/10 Javascript
jquery统计复选框选中示例
2013/11/05 Javascript
JS阻止冒泡事件以及默认事件发生的简单方法
2014/01/17 Javascript
jQuery鼠标悬浮链接弹出跟随图片实例代码
2016/01/08 Javascript
AngularJS中监视Scope变量以及外部调用Scope方法
2016/01/23 Javascript
基于javascript制作经典传统的拼图游戏
2016/03/22 Javascript
深入浅析knockout源码分析之订阅
2016/07/12 Javascript
jquery实现数字输入框
2017/02/22 Javascript
详解Vue2+Echarts实现多种图表数据可视化Dashboard(附源码)
2017/03/21 Javascript
EasyUI Tree树组件无限循环的解决方法
2017/09/27 Javascript
微信小程序使用video组件播放视频功能示例【附源码下载】
2017/12/08 Javascript
vue使用showdown并实现代码区域高亮的示例代码
2019/10/17 Javascript
浅谈vue项目,访问路径#号的问题
2020/08/14 Javascript
JavaScript实现滚动加载更多
2020/12/27 Javascript
[05:20]2018DOTA2亚洲邀请赛主赛事第三日战况回顾 LGD率先挺进胜者组决赛
2018/04/06 DOTA
[10:21]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster 选手采访
2021/03/11 DOTA
python冒泡排序算法的实现代码
2013/11/21 Python
Python中使用urllib2防止302跳转的代码例子
2014/07/07 Python
pandas表连接 索引上的合并方法
2018/06/08 Python
Python使用Numpy模块读取文件并绘制图片
2020/05/13 Python
澳大利亚Mocha官方网站:包、钱包、珠宝和配饰
2019/07/18 全球购物
历史系自荐信范文
2013/12/24 职场文书
小班幼儿评语大全
2014/04/30 职场文书
捐献物资倡议书范文
2014/05/19 职场文书
光学与应用专业毕业生求职信
2014/09/01 职场文书
个人查摆剖析材料
2014/10/16 职场文书
服务整改报告
2014/11/06 职场文书
特此通知格式
2015/04/27 职场文书
PyCharm配置KBEngine快速处理代码提示冲突、配置命令问题
2021/04/03 Python
秀!学妹看见都惊呆的Python小招数!【详细语言特性使用技巧】
2021/04/27 Python
分布式锁为什么要选择Zookeeper而不是Redis?看完这篇你就明白了
2021/05/21 Redis