5个值得收藏的console.log()使用小技巧

对于开发者来说,在浏览器上打印信息已经变得越来越普遍,console.log()就像是万能的方案。本篇文章给大家介绍5个值得收藏的console.log()使用小技巧,希望对大家有所帮助。

我们知道 console.log(message)用法很简单,表示将参数message 打印到控制台上。

console.log('My message');
// logs "My message"

const myVar = 12;
console.log(myVar);
// logs 12

本文主要介绍5个有用的技巧,可帮助你在使用console.log()时提高工作效率。

1. 命名日志变量

在控制台打印多个变量,有时很难区别哪个变量对应哪个值。

例如,让我们打印一些变量:

function sum(a, b) {
  console.log(b);
  return a + b;
}

sum(1, 2);
sum(4, 5);

执行上述代码后,我们只会看到一系列数字:

1.png

要在记录的值和变量之间建立关联,可以用花括号把变量包起来:{b}

2.png

2.高级格式化

将某些东西打印到控制台最常见方法是简单地使用一个参数调用console.log()

console.log('My message');
// logs "My message"

有时我们可能想要一条包含多个变量的信息。 幸运的是,console.log()可以使用%s%i等说明符以sprintf()的方式格式化字符串。

const user = 'john_smith';
const attempts = 5;

console.log('%s 登录失败了 %i 次', user, attempts);
// logs "john_smith 登录失败了 5 次"

%s%iuserattempts的值替换。 说明符%s转换为字符串,而%i转换为数字。

以下是可用说明符的列表:

说明符作用
%s元素转换为字符串
%d 或 %i元素转换为整数
%f元素转换为浮点数
%o元素以最有效的格式显示
%O元素以最有效的格式显示
%c应用提供的CSS

3. 具有样式的打印风格

浏览器控制台允许我们将样式应用于打印的消息。

我们可以通过将%c说明符与相应的CSS样式结合使用来实现。例如,让我们发送一条日志消息,该消息显示字体大小和字体粗细情况:

console.log('%c Big message', 'font-size: 36px; font-weight: bold');

说明符%c应用CSS样式'font-size: 36px; font-weight: bold'

3.png

4. 互动日志

日志样式化依赖于主机的控制台实现。像ChromeFirefox这样的浏览器提供对象和数组的交互式日志,而 Node 控制台将日志输出为文本。

来看看Chrome如何打印普通对象,数组和DOM树,可以通过展开和折叠与这些元素进行交互。

4.1 Objects

const myObject = {
  name: 'John Smith',
  profession: 'agent'
};

console.log(myObject);

在Chrome控制台中,myObject的打印如下所示:

4.png

可以展开和折叠对象属性列表,也可以看到对象的原型。

4.2 Arrays

const characters = ['Neo', 'Morpheus', 'John Smith'];
console.log(characters);

5.png

4.3 DOM 树结构

我们可以直接与控制台中显示的DOM元素进行交互。

console.log(document.getElementById('root'));

在Chrome控制台中,可以扩展DOM元素,并可以全面浏览其内容:

6.png

4.4 交互式嵌套里的消息

%o说明符(为值关联了正确的打印格式)可以在文本消息中插入数组,对象,DOM元素和常规文本,而不会失去交互性。

const myObject = {
  name: 'John Smith',
  profession: 'agent'
};

console.log('Neo, be aware of %o', myObject);

从控制台看,myObject数组不会转换为字符串,而是保持交互性。

7.png

5. 在 Node 控制台中打印大对象

Node中的log以纯文本形式输出。 但是,Node 中的console.log()不会显示具有深层嵌套的对象:第3级的对象显示为[Object]

const myObject = {
  propA: {
    propB: {
      propC: {
        propD: 'hello'
      }
    }
  }
};

console.log(myObject);

运行脚本时,propC的对象打印为[Object]

8.png

5.1字符串化大对象

要查看完整的对象结构,可以使用对象的JSON表示形式JSON.stringify()

const myObject = {
  propA: {
    propB: {
      propC: {
        propD: 'hello'
      }
    }
  }
};

console.log(JSON.stringify(myObject, null, 2));

JSON.stringify(myObject, null, 2)返回该对象的JSON表示形式,第三个参数2在空格中设置缩进大小。

9.png

5.2深度不受限制的console.dir()

在深度显示对象时,一个很好的替代方法是调用console.dir(),而不限制对象的深度:

const myObject = {
  propA: {
    propB: {
      propC: {
        propD: 'hello'
      }
    }
  }
};

console.dir(myObject, { depth: null });

{depth:null}作为第二个参数调用的console.dir()记录对象的深度。

以下是日志在控制台中的显示方式:

1.png

希望这5个技巧可以使你使用 console.log() 体验更加高效。

英文原文地址:https://dmitripavlutin.com/console-log-tips/

为了保证的可读性,本文采用意译而非直译。

更多web前端知识,请查阅 HTML中文网 !!

以上就是5个值得收藏的console.log()使用小技巧的详细内容,更多请关注web前端其它相关文章!

赞(0) 打赏
未经允许不得转载:web前端首页 » JavaScript 教程

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

前端开发相关广告投放 更专业 更精准

联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏