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 相关文章推荐
ActiveX控件与Javascript之间的交互示例
Jun 04 Javascript
javascript省市级联功能实现方法实例详解
Oct 20 Javascript
浅析javascript的return语句
Dec 15 Javascript
全面解析标签页的切换方式
Aug 21 Javascript
jQuery列表检索功能实现代码
Jul 17 jQuery
微信小程序使用toast消息对话框提示用户忘记输入用户名或密码功能【附源码下载】
Dec 09 Javascript
解决vue 格式化银行卡(信用卡)每4位一个符号隔断的问题
Sep 14 Javascript
JS中appendChild追加子节点无效的解决方法
Oct 14 Javascript
React Hooks的深入理解与使用
Nov 12 Javascript
layui实现checkbox的目录树tree的例子
Sep 12 Javascript
详解webpack-dev-middleware 源码解读
Mar 23 Javascript
在vue中axios设置timeout超时的操作
Sep 04 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 实例化类的一点摘记
2008/03/23 PHP
PHP 基于文件头的文件类型验证类函数
2012/05/01 PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
2017/08/29 PHP
PHP简单实现模拟登陆功能示例
2017/09/15 PHP
PHP实现合并两个排序链表的方法
2018/01/19 PHP
网页里控制图片大小的相关代码
2006/06/13 Javascript
return false;和e.preventDefault();的区别
2010/07/11 Javascript
javascript中checkbox使用方法实例演示
2015/11/19 Javascript
easyui messager alert 三秒后自动关闭提示的实例
2016/11/07 Javascript
AngularJS中run方法的巧妙运用
2017/01/04 Javascript
jQuery中 bind的用法简单介绍
2017/02/13 Javascript
JavaScrpt的面向对象全面解析
2017/05/09 Javascript
js编写选项卡效果
2017/05/23 Javascript
Angular2.0/4.0 使用Echarts图表的示例代码
2017/12/07 Javascript
ES6知识点整理之函数对象参数默认值及其解构应用示例
2019/04/17 Javascript
JS浮点数运算结果不精确的Bug解决
2019/08/01 Javascript
layui加载数据显示loading加载完成loading消失的实例代码
2019/09/23 Javascript
关于layui的下拉搜索框异步加载数据的解决方法
2019/09/28 Javascript
jQuery 动态粒子效果示例代码
2020/07/07 jQuery
webpack5 联邦模块介绍详解
2020/07/08 Javascript
[01:10]DOTA2次级职业联赛 - Fly战队宣传片
2014/12/01 DOTA
[50:27]OG vs LGD 2018国际邀请赛淘汰赛BO3 第一场 8.26
2018/08/30 DOTA
Python是编译运行的验证方法
2015/01/30 Python
Python使用selenium实现网页用户名 密码 验证码自动登录功能
2018/05/16 Python
Python读取txt内容写入xls格式excel中的方法
2018/10/11 Python
纯用NumPy实现神经网络的示例代码
2018/10/24 Python
python 读取dicom文件,生成info.txt和raw文件的方法
2019/01/24 Python
Woolworth官网:澳洲第一大超市
2017/06/25 全球购物
英国在线药房和在线医生:LloydsPharmacy
2019/10/21 全球购物
水务局局长岗位职责
2013/11/28 职场文书
职业技术学校毕业生推荐信
2013/12/03 职场文书
单身联谊活动方案
2014/01/29 职场文书
《口技》教学反思
2014/02/21 职场文书
村容村貌整治方案
2014/05/21 职场文书
2014年环境整治工作总结
2014/12/10 职场文书
2019年消防宣传标语集锦
2019/11/21 职场文书