做者:Dmitri Pavlutin
译者:前端小智
来源:dmitripavlutin.
点赞再看,养成习惯本文
GitHub
https://github.com/qq44924588... 上已经收录,更多往期高赞文章的分类,也整理了不少个人文档,和教程资料。欢迎Star和完善,你们面试能够参照考点复习,但愿咱们一块儿有点东西。前端
咱们知道 console.log(message)
用法很简单,表示将参数message 打印到控制台上。git
console.log('前端小智') // 前端小智 const myAge = 28 console.log(myAge) // 28
本文主要介绍5
个有用的技巧,可帮助你在使用console.log()
时提升工做效率。github
若是在控制台打印多个变量,是数量比较多的状况下,咱们很难区别哪一个变量对应哪一个值。面试
function sum(a, b) { console.log(b); return a + b; } sum(1, 2); sum(4, 5);
执行上述代码后,咱们只会看到一系列数字:数组
要表示值和变量之间关系,能够用花括号把变量包起来:{b}
:浏览器
将某些东西打印到控制台最多见方法是简单地使用一个参数调用console.log()
:微信
console.log('前端小智') // 前端小智
有时咱们可能想要一条包含多个变量的信息。 幸运的是,console.log()
可使用%s
,%i
等说明符以sprintf()
的方式格式化字符串。工具
const user = '前端小智'; const attempts = 5; console.log('%s 登陆失败了 %i 次', user, attempts); // 前端小智 登陆失败了 5 次
%s
和%i
被user
和attempts
的值替换。 说明符%s
转换为字符串,而%i
转换为数字。spa
如下是可用说明符的列表:debug
说明符 | 做用 |
---|---|
%s | 元素转换为字符串 |
%d 或 %i | 元素转换为整数 |
%f | 元素转换为浮点数 |
%o | 元素以最有效的格式显示 |
%O | 元素以最有效的格式显示 |
%c | 应用提供的CSS |
浏览器控制台容许咱们将样式应用于打印的消息,咱们能够经过将%c
说明符与相应的CSS样式一块儿使用来实现,以下所示:
console.log('%c Big message', 'font-size: 36px; font-weight: bold');
说明符%c
应用CSS样式'font-size: 36px; font-weight: bold'
日志样式化依赖于主机的控制台实现。像Chrome
和Firefox
这样的浏览器提供对象和数组的交互展现,而 Node 控制台输出为文本。
来看看Chrome如何打印普通对象,数组和DOM树,能够经过展开和折叠与这些元素进行交互。
const myObject = { name: 'John Smith', profession: 'agent' }; console.log(myObject);
在Chrome控制台中,myObject
的打印以下所示:
能够展开和折叠对象属性列表,也能够看到对象的原型。
const characters = ['Neo', 'Morpheus', 'John Smith']; console.log(characters);
咱们能够直接与控制台中显示的DOM元素进行交互。
console.log(document.getElementById('root'));
在Chrome控制台中,能够扩展DOM元素,并能够全面浏览其内容:
%o
说明符(为值关联了正确的打印格式)能够在文本消息中插入数组,对象,DOM元素和常规文本,而不会失去交互性。
const myObject = { name: 'John Smith', profession: 'agent' }; console.log('Neo, be aware of %o', myObject);
从控制台看,myObject
数组不会转换为字符串,而是保持交互性。
Node中的log
以纯文本形式输出。 可是,Node 中的console.log()
不会显示具备深层嵌套的对象:第3级的对象显示为[Object]
。
const myObject = { propA: { propB: { propC: { propD: 'hello' } } } }; console.log(myObject);
运行脚本时,propC
的对象打印为[Object]
:
要查看完整的对象结构,可使用JSON.stringify()
:
const myObject = { propA: { propB: { propC: { propD: 'hello' } } } }; console.log(JSON.stringify(myObject, null, 2));
JSON.stringify(myObject, null, 2)
返回该对象的JSON表示形式,第三个参数2
在空格中设置缩进大小。
但愿这5个技巧可使你使用 console.log()
体验更加高效。
代码部署后可能存在的BUG无法实时知道,过后为了解决这些BUG,花了大量的时间进行log 调试,这边顺便给你们推荐一个好用的BUG监控工具 Fundebug。
原文:https://dmitripavlutin.com/co...
文章每周持续更新,能够微信搜索「 大迁世界 」第一时间阅读和催更(比博客早一到两篇哟),本文 GitHub https://github.com/qq449245884/xiaozhi 已经收录,整理了不少个人文档,欢迎Star和完善,你们面试能够参照考点复习,另外关注公众号,后台回复福利,便可看到福利,你懂的。