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 相关文章推荐
初学prototype,发个JS接受URL参数的代码
Sep 25 Javascript
原生Js与jquery的多组处理, 仅展开一个区块的折叠效果
Jan 09 Javascript
Javascript对象中关于setTimeout和setInterval的this介绍
Jul 21 Javascript
js 获取和设置css3 属性值的实现方法
May 06 Javascript
Jquery创建层显示标题和内容且随鼠标移动而移动
Jan 26 Javascript
js判断是否按下了Shift键的方法
Jan 27 Javascript
浅谈JS验证表单文本域输入空格的问题
Feb 14 Javascript
JS手机端touch事件计算滑动距离的方法示例
Oct 26 Javascript
jQuery事件绑定和解绑、事件冒泡与阻止事件冒泡及弹出应用示例
May 13 jQuery
vue-cli3添加模式配置多环境变量的方法
Jun 05 Javascript
javascript实现简易数码时钟
Mar 30 Javascript
Javascript组合继承方法代码实例解析
Apr 02 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
屏蔽浏览器缓存另类方法
2006/10/09 PHP
PHP独立Session数据库存储操作类分享
2014/06/11 PHP
CI框架数据库查询缓存优化的方法
2016/11/21 PHP
js设置cookie过期及清除浏览器对应名称的cookie
2013/10/24 Javascript
js判断运行jsp页面的浏览器类型以及版本示例
2013/10/30 Javascript
jquery 操作css样式、位置、尺寸方法汇总
2014/11/28 Javascript
javaScript中Math()函数注意事项
2015/06/18 Javascript
jQuery实现带幻灯的tab滑动切换风格菜单代码
2015/08/27 Javascript
JS禁止查看网页源代码的实现方法
2016/10/12 Javascript
html中鼠标滚轮事件onmousewheel的处理方法
2016/11/11 Javascript
手机端js和html5刮刮卡效果
2020/09/29 Javascript
JS正则截取两个字符串之间及字符串前后内容的方法
2017/01/06 Javascript
为JQuery EasyUI 表单组件增加焦点切换功能的方法
2017/04/13 jQuery
详细讲解vue2+vuex+axios
2017/05/27 Javascript
Vue组件之全局组件与局部组件的使用详解
2017/10/09 Javascript
vue实现多条件和模糊搜索功能
2019/05/28 Javascript
Python中实现结构相似的函数调用方法
2015/03/10 Python
python通过装饰器检查函数参数数据类型的方法
2015/03/13 Python
在Python中操作字符串之rstrip()方法的使用
2015/05/19 Python
python实现的正则表达式功能入门教程【经典】
2017/06/05 Python
Django 迁移、操作数据库的方法
2019/08/02 Python
使用python批量修改文件名的方法(视频合并时)
2020/03/24 Python
利用rest framework搭建Django API过程解析
2019/08/31 Python
jupyter notebook tensorflow打印device信息实例
2020/04/20 Python
HTML5地理定位_动力节点Java学院整理
2017/07/12 HTML / CSS
韩国美国时尚服装和美容在线全球市场:KOODING
2018/11/07 全球购物
Trip.com澳大利亚:在线旅行社
2019/12/01 全球购物
大专生自我鉴定范文
2013/10/01 职场文书
文明工地标语
2014/06/16 职场文书
SQL 窗口函数实现高效分页查询的案例分析
2021/05/21 SQL Server
javascript数组includes、reduce的基本使用
2021/07/02 Javascript
PostgreSQL解析URL的方法
2021/08/02 PostgreSQL
面试提问mysql一张表到底能存多少数据
2022/03/13 MySQL
集英社今正式宣布 成立游戏公司“集英社Games”
2022/03/31 其他游戏
台式电脑蓝牙适配器怎么安装?台式电脑蓝牙适配器安装教程
2022/04/08 数码科技
mysql查看表结构的三种方法总结
2022/07/07 MySQL