设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 重新 试卷 文件
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

灵活使用console让 js调试更简单(3)

发布时间:2019-04-04 14:52 所属栏目:21 来源:前端小智
导读:这里使用 console.log() 仅告诉我们传递数据dataLib是什么 ,而没有具体的传递的路径。不过,console.trace() 会非常清楚地告诉我们问题出在 Dashboard.js,我们可以看到是 new CupcakeService(false) 导致错误。 c

这里使用 console.log() 仅告诉我们传递数据dataLib是什么 ,而没有具体的传递的路径。不过,console.trace() 会非常清楚地告诉我们问题出在 Dashboard.js,我们可以看到是 new CupcakeService(false) 导致错误。

console.time()

console.time() 是一个用于跟踪操作时间的专用函数,它是跟踪 JavaScript执行时间的好方法。

  1. function slowFunction(number) {  
  2.   var functionTimerStart = new Date().getTime();  
  3.   // something slow or complex with the numbers.   
  4.   // Factorials, or whatever.  
  5.   var functionTime = new Date().getTime() - functionTimerStart;  
  6.   console.log(`Function time: ${ functionTime }`);  
  7. }  
  8. var start = new Date().getTime();  
  9. for (i = 0; i < 100000; ++i) {  
  10.   slowFunction(i);  
  11. }  
  12. var time = new Date().getTime() - start;  
  13. console.log(`Execution time: ${ time }`); 

这是一种老派的做法,我们使用 console.time() 来简化以上代码。

  1. const slowFunction = number =>  {  
  2.   console.time('slowFunction');  
  3.   // something slow or complex with the numbers.   
  4.   // Factorials, or whatever.  
  5.   console.timeEnd('slowFunction');  
  6. }  
  7. console.time();  
  8. for (i = 0; i < 100000; ++i) {  
  9.   slowFunction(i);  
  10. }  
  11. console.timeEnd(); 

我们现在不再需要做任何计算或设置临时变量。

console.group()

  1. // this is the global scope  
  2. let number = 1;  
  3. console.group('OutsideLoop');  
  4. console.log(number);  
  5. console.group('Loop');  
  6. for (let i = 0; i < 5; i++) {  
  7.   number = i + number;  
  8.   console.log(number);  
  9. }  
  10. console.groupEnd();  
  11. console.log(number);  
  12. console.groupEnd();  
  13. console.log('All done now'); 

输出如下:

并不是很有用,但是您可以看到其中一些是如何组合的。

  1. class MyClass {  
  2.   constructor(dataAccess) {  
  3.     console.group('Constructor');  
  4.     console.log('Constructor executed');  
  5.     console.assert(typeof dataAccess === 'object',   
  6.       'Potentially incorrect dataAccess object');  
  7.     this.initializeEvents();  
  8.     console.groupEnd();  
  9.   }  
  10.   initializeEvents() {  
  11.     console.group('events');  
  12.     console.log('Initialising events');  
  13.     console.groupEnd();  
  14.   }  
  15. }  
  16. let myClass = new MyClass(false); 

这是很多工作和很多调试信息的代码,可能不是那么有用。 但它仍然是一个有趣的想法,这样写使你的日志记录更加清晰。

选择DOM元素

如果熟悉jQuery,就会知道 $(‘.class’) 和 $(‘#id’) 选择器有多么重要。它们根据与之关联的类或 ID 选择 DOM 元素。

但是当你没有引用 jQuery时,你仍然可以在谷歌开发控制台中进行同样的操作。

$(‘tagName’) $(‘.class’) $(‘#id’) and $(‘.class #id’) 等效于document.querySelector(‘ ‘),这将返回 DOM 中与选择器匹配的第一个元素。

可以使用 \$\$(tagName) 或 \$\$(.class), 注意双元符号,根据特定的选择器选择DOM的所有元素。这也将它们放入数组中,你也可以通过指定数组中该元素的位置来从中选择特定的元素。

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读