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 相关文章推荐
可以显示单图片,多图片ajax请求的ThickBox3.1类下载
Dec 23 Javascript
javascript showModalDialog 多层模态窗口实现页面提交及刷新的代码
Nov 28 Javascript
jQuery EasyUI 菜单与按钮之创建简单的菜单和链接按钮
Nov 18 Javascript
JavaScript定时器实现的原理分析
Dec 06 Javascript
利用JavaScript实现栈的数据结构示例代码
Aug 02 Javascript
使用vue制作探探滑动堆叠组件的实例代码
Mar 07 Javascript
Vue中的作用域CSS和CSS模块的区别
Oct 09 Javascript
Vue CLI3基础学习之pages构建多页应用
Jun 02 Javascript
vue使用nprogress加载路由进度条的方法
Jun 04 Javascript
AngularJs的$http发送POST请求,php无法接收Post的数据问题及解决方案
Aug 13 Javascript
解决vant中 tab栏遇到的坑 van-tabs
Nov 04 Javascript
在Vue中使用CSS3实现内容无缝滚动的示例代码
Nov 27 Vue.js
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教程 预定义变量
2009/10/23 PHP
php带密码功能并下载远程文件保存本地指定目录 修改加强版
2010/05/16 PHP
体育彩票排列三组选三算法分享
2014/03/07 PHP
php include类文件超时问题处理
2015/02/06 PHP
laravel 5 实现模板主题功能
2015/03/02 PHP
php.ini中date.timezone设置详解
2016/11/20 PHP
JavaScript 开发中规范性的一点感想
2009/06/23 Javascript
js常用排序实现代码
2010/12/28 Javascript
JavaScript对数字的判断与处理实例分析
2015/02/02 Javascript
js获取鼠标点击的对象,点击另一个按钮删除该对象的实现代码
2016/05/13 Javascript
酷! 不同风格页面布局幻灯片特效js实现
2021/02/19 Javascript
独立部署小程序基于nodejs的服务器过程详解
2019/06/24 NodeJs
vue仿ios列表左划删除
2019/09/26 Javascript
JavaScript计算正方形面积
2019/11/26 Javascript
node.js使用 http-proxy 创建代理服务器操作示例
2020/02/10 Javascript
python类型强制转换long to int的代码
2013/02/10 Python
Python实现简单HTML表格解析的方法
2015/06/15 Python
Python3读取Excel数据存入MySQL的方法
2018/05/04 Python
Pycharm 创建 Django admin 用户名和密码的实例
2018/05/30 Python
Python pymysql模块安装并操作过程解析
2020/10/13 Python
html5 css3 动态气泡按钮实例演示
2012/12/02 HTML / CSS
德国baby-markt婴儿用品瑞士网站:baby-markt.ch
2017/06/09 全球购物
英国最大的在线床超市:Bed Star
2019/01/24 全球购物
真正的英国宝藏:Mappin & Webb
2019/05/05 全球购物
FC-Moto丹麦:欧洲最大的摩托车服装和头盔商店之一
2019/08/20 全球购物
资深生产主管自我评价
2013/09/22 职场文书
自我评价如何写好?
2014/01/05 职场文书
小学生教师节演讲稿
2014/09/03 职场文书
七一讲话心得体会
2014/09/05 职场文书
学校法制宣传日活动总结
2014/11/01 职场文书
小学语文教师年度考核个人总结
2015/02/05 职场文书
五一劳动节慰问信
2015/02/14 职场文书
通知的格式范文
2015/04/27 职场文书
解析原生JS getComputedStyle
2021/05/25 Javascript
PostgreSQL聚合函数介绍以及分组和排序
2022/04/12 PostgreSQL
CentOS7安装MySQL8的超级详细教程(无坑!)
2022/06/10 Servers