IDC

JavaScript console.log() 小技巧

作者:admin 2021-04-25 我要评论

本文转载自微信公众号前端先锋(jingchengyideng)。 每个前端都会用 JavaScript 控制台打日志或调试。但是 console 对象比 console.log() 有更多的东西。 计算...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

本文转载自微信公众号“前端先锋”(jingchengyideng)。

每个前端都会用 JavaScript 控制台打日志或调试。但是 console 对象比 console.log() 有更多的东西。

计算属性名称

ES6 的计算属性名称特别有用,因为它们可以通过在变量周围添加一对大括号来帮你识别的变量。

  1. const x = 1y = 2z = 3
  2.  
  3. console.log({x, y, z}); // {x: 1, y: 2, z: 3} 

console.trace()

console.trac() 与 console.log() 完全相同,但它也会输出整个栈跟踪,能让你确切地知道到底发生了什么。

  1. const outer = () => { 
  2.   const inner = () => console.trace('Hello'); 
  3.   inner(); 
  4. }; 
  5.  
  6. outer(); 
  7. /* 
  8.   Hello 
  9.   inner @ VM207:3 
  10.   outer @ VM207:5 
  11.   (anonymous) @ VM228:1 
  12. */ 

console.group()

console.group() 可以把日志分组为可折叠的结构,当有多个日志时特别有用。

  1. console.group('Outer');           // 创建一个名为 'Outer' 的组 
  2. console.log('Hello');             // 在 'Outer' 组中输出日志 
  3. console.groupCollapsed('Inner');  // 创建一个名为 'Inner' 的组,折叠状态 
  4. console.log('Hellooooo');         // 在 'Inner' 组中输出日志 
  5. console.groupEnd();               // 结束当前组, 'Inner' 
  6. console.groupEnd();               // 结束当前组, 'Outer' 
  7. console.log('Hi');                // 在组外输出日志 

日志级别

除了 console.log() 之外,还有其他一些日志记录级别,例如 [console.debug()](https://developer.mozilla.org/en-US/docs/Web/API/Console /debug)、 console.info()、 console.warn()和 console.error()。

  1. console.debug('Debug message'); 
  2. console.info('Useful information'); 
  3. console.warn('This is a warning'); 
  4. console.error('Something went wrong!'); 

console.assert()

console.assert() 提供了一种简便的方法,仅在断言失败时将某些内容记录为错误(例如当第一个参数为 false 时),否则完全跳过日志。

  1. const value = 10
  2.  
  3. console.assert(value === 10, 'Value is not 10!'); // 不输出日志 
  4. console.assert(value === 20, 'Value is not 20!'); // 输出日志:"Value is not 20!" 

console.count()

可以用 console.count() 来统计一段代码执行了多少次。

  1. Array.from({ length: 4 }).forEach( 
  2.   () => console.count('items')  // 名为 items 的计数器 
  3. ); 
  4. /* 
  5.   items: 1 
  6.   items: 2 
  7.   items: 3 
  8.   items: 4 
  9. */ 
  10. console.countReset('items');  // 重置计数器 

console.time()

console.time() 提供了一种快速检查代码性能的方法,但是由于精度较低,不可用于真正的基准测试。

  1. console.time('slow comp');     
  2. console.timeLog('slow comp');  
  3. console.timeEnd('slow comp');  

CSS

最后一个,还可以在 console.log() 中用 %c 字符串替换表达式将 CSS 应用于日志的各个部分。

  1. console.log( 
  2.   'CSS can make %cyour console logs%c %cawesome%c!', 
  3.   'color: #fff; background: #1e90ff; padding: 4px',  
  4.   '',  
  5.   'color: #f00; font-weight: bold', 
  6.   '' 
  7. ); 
【责任编辑:赵宁宁 TEL:(010)68476606】
本文转载自网络,原文链接:http://mp.weixin.qq.com/s?__biz=MzI3NzIzMDY0NA==&mid=2247499544&idx=2&sn=b795ea63802ccf97ab8dd04275df5811&chksm=eb6bda43dc1c5355afa2c202382c7bb148ea62f6364fab1a6ba64bbef34e8af52b10af686ada&mpshare=1&s

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • “礼物”域名12万元领衔!韩国最大比特

    “礼物”域名12万元领衔!韩国最大比特

  • 宋崝:浅谈ICANN的改革与国际化

    宋崝:浅谈ICANN的改革与国际化

  • 亚马逊和谷歌闹掰了:注册系列域名要对

    亚马逊和谷歌闹掰了:注册系列域名要对

  • “场外交易”域名OTC.cn易主大佬戴跃!

    “场外交易”域名OTC.cn易主大佬戴跃!