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 相关文章推荐
jQuery帮助之CSS尺寸(五)outerHeight、outerWidth
Nov 14 Javascript
jquery的选择器的使用技巧之如何选择input框
Sep 22 Javascript
javascript中2个感叹号的用法实例详解
Sep 04 Javascript
JavaScript数组和循环详解
Apr 27 Javascript
javascript 常用验证函数总结
Jun 28 Javascript
JavaScript交换两个变量值的七种解决方案
Dec 01 Javascript
javascript 动态生成css代码的两种方法
Mar 17 Javascript
jQuery插件FusionWidgets实现的AngularGauge图效果示例【附demo源码】
Mar 23 jQuery
BootStrap 动态表单效果
Jun 02 Javascript
jQuery开源组件BootstrapValidator使用详解
Jun 29 jQuery
JavaScript时间日期操作实例小结【5个示例】
Dec 22 Javascript
JavaScript使用小插件实现倒计时的方法讲解
Mar 11 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
PHP实现生成透明背景的PNG缩略图函数分享
2014/07/08 PHP
laravel 5.3 单用户登录简单实现方法
2019/10/14 PHP
Avengerls vs Newbee BO3 第一场2.18
2021/03/10 DOTA
javascript 无提示关闭窗口脚本
2009/08/17 Javascript
通过DOM脚本去设置样式信息
2010/09/19 Javascript
使图片旋转的3种解决方案
2013/11/21 Javascript
js生成随机数之random函数随机示例
2013/12/20 Javascript
jQuery实现友好的轮播图片特效
2015/01/12 Javascript
JavaScript实现MIPS乘法模拟的方法
2015/04/17 Javascript
jquery实现美观的导航菜单鼠标提示特效代码
2015/09/06 Javascript
js实现的Easy Tabs选项卡用法实例
2015/09/06 Javascript
jquery动态增加删减表格行特效
2015/11/20 Javascript
jquery拖拽排序简单实现方法(效果增强版)
2016/02/16 Javascript
javascript 分号总结及详细介绍
2016/09/24 Javascript
基于jQuery的select下拉框选择触发事件实例分析
2016/11/18 Javascript
B/S(Web)实时通讯解决方案分享
2017/04/06 Javascript
JavaScript中undefined和null的区别
2017/05/03 Javascript
使用JS在浏览器中判断当前网络连接状态的几种方法
2017/05/05 Javascript
webpack源码之loader机制详解
2018/04/06 Javascript
JS中双击和单击事件冲突的解决方法
2018/04/09 Javascript
webpack+vue-cli项目中引入外部非模块格式js的方法
2018/09/28 Javascript
webpack之引入图片的实现及问题
2018/10/08 Javascript
使用vue实现各类弹出框组件
2019/07/03 Javascript
JS实现碰撞检测效果
2020/03/12 Javascript
python中利用Future对象异步返回结果示例代码
2017/09/07 Python
沙龙级头发造型工具:FOXYBAE
2018/07/01 全球购物
eharmony澳大利亚:网上约会服务
2020/02/29 全球购物
LACOSTE波兰官网:Polo衫、服装和鞋类
2020/09/29 全球购物
一套C#面试题
2013/10/09 面试题
英语系本科生求职信范文
2013/12/18 职场文书
运动会解说词50字
2014/01/18 职场文书
岗位工作说明书
2014/07/29 职场文书
中学教师暑期培训方案
2014/08/27 职场文书
护理专业自我评价
2015/03/11 职场文书
公司车辆管理制度
2015/08/04 职场文书
Python实现生成bmp图像的方法
2021/06/13 Python