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 相关文章推荐
JSON 教程 json入门学习笔记
Sep 22 Javascript
js 一个关于图片onload加载的事
Nov 10 Javascript
对new functionName()定义一个函数的理解
May 22 Javascript
解决jquery实现的radio重新选中的问题
Jul 03 Javascript
基于JavaScript实现移动端点击图片查看大图点击大图隐藏
Nov 04 Javascript
bootstrap laydate日期组件使用详解
Jan 04 Javascript
微信小程序使用Promise简化回调
Feb 06 Javascript
React中的refs的使用教程
Feb 13 Javascript
JS实现根据指定值删除数组中的元素操作示例
Aug 02 Javascript
element-ui 的el-button组件中添加自定义颜色和图标的实现方法
Oct 26 Javascript
Ant-design-vue Table组件customRow属性的使用说明
Oct 28 Javascript
antd design table更改某行数据的样式操作
Oct 31 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数据库抽象层 PDO
2011/05/07 PHP
微信扫描二维码登录网站代码示例
2013/12/30 PHP
PHP中配置IIS7实现基本身份验证的方法
2015/09/24 PHP
php array_slice 取出数组中的一段序列实例
2016/11/04 PHP
Thinkphp5 如何隐藏入口文件index.php(URL重写)
2019/10/16 PHP
关于图片的预加载过程中隐藏未知的
2012/12/19 Javascript
JS画线(实例代码)
2013/11/20 Javascript
浏览器窗口加载和大小改变事件示例
2014/02/27 Javascript
jQuery中:hidden选择器用法实例
2014/12/30 Javascript
JavaScript实现获得所有兄弟节点的方法
2015/07/23 Javascript
再JavaScript的jQuery库中编写动画效果的指南
2015/08/13 Javascript
AngularJS入门教程之AngularJS指令
2016/04/18 Javascript
JavaScript中的跨浏览器事件操作的基本方法整理
2016/05/20 Javascript
JS实现中文汉字按拼音排序的方法
2017/10/09 Javascript
JS控制鼠标拒绝点击某一按钮的实例
2017/12/29 Javascript
vue实现移动端悬浮窗效果
2018/12/01 Javascript
微信小程序 setData 对 data数据影响问题
2019/04/18 Javascript
jQuery事件绑定和解绑、事件冒泡与阻止事件冒泡及弹出应用示例
2019/05/13 jQuery
微信小程序实现上传照片代码实例解析
2020/08/04 Javascript
[07:06]2018DOTA2国际邀请赛寻真——卫冕冠军Team Liquid
2018/08/10 DOTA
Python的Django框架中的数据库配置指南
2015/07/17 Python
django自带的server 让外网主机访问方法
2018/05/14 Python
python统计字母、空格、数字等字符个数的实例
2018/06/29 Python
python3利用venv配置虚拟环境及过程中的小问题小结
2018/08/01 Python
python实现把两个二维array叠加成三维array示例
2019/11/29 Python
TensorFlow实现从txt文件读取数据
2020/02/05 Python
Python requests设置代理的方法步骤
2020/02/23 Python
Python QTimer实现多线程及QSS应用过程解析
2020/07/11 Python
毕业生文员求职信
2013/11/03 职场文书
法律专业推荐信范文
2013/11/29 职场文书
婚纱摄影师求职信
2014/03/07 职场文书
汽车维修专业自荐书
2014/05/26 职场文书
协议书范文
2015/01/27 职场文书
志愿者个人总结
2015/03/03 职场文书
【海涛dota解说】一房久违的影魔魂守二连发
2022/04/01 DOTA
Java Spring Lifecycle的使用
2022/05/06 Java/Android