JavaScript中的 console 对象可用于访问浏览器调试控制台,可以用它在控制台中输出代码中变量的值。

不过大多数人都只过 console.log() 在浏览器控制台中进行输出调试。log 只是 console 对象的一种方法,除了它还有很多非常有用的方法。

1. console.log()


这个方法主要用于将传给它的值输出到控制台。可以给 log() 传递任何类型:可以是字符串,数组,对象,布尔值等。

console.log('JavaScript');
console.log(7);
console.log(true);
console.log(null);
console.log(undefined);
console.log([1, 2, 3]);
console.log({a: 1, b: 2, c: 3});

输出:

2. console.error()


这个方法在测试代码时非常有用。它用于将错误输出到浏览器控制台。错误消息默认用红色突出显示。

console.error('Error found');

输出:

3. console.warn()


这个方法用于向控制台抛出警告。警告消息默认以黄色突出显示。

console.warn('Warning!');

输出:

4. console.clear()


这个函数用来清除控制台。如果控制台中充满了消息和错误信息,可以用它清除控制台,并在控制台中显示一条消息:Console was cleared 。

console.clear()

输出:

5. console.time() 与 console.timeEnd()


这两种方法要相互结合使用。每当我们想知道一个代码块或函数所花费的时间时,都可以用 time() 和 timeEnd() 方法。这两个函数都以字符串作为参数。使用时要对这两个函数用相同的字符串来测量时间。

console.time('timer'); const hello =  function(){
  console.log('Hello Console!');
}const bye = function(){
  console.log('Bye Console!');
}hello(); // calling hello();
bye(); // calling bye();console.timeEnd('timer');

输出:

6. console.table()


这个方法可以在控制台中生成一个表格,能够提高可读性。它可以自动为数组或对象生成一个表。

console.table({a: 1, b: 2, c: 3}); 

输出:

7. console.count()


可以在循环中用它来检查特定的值使用了多少次。


for(let i=0; i<3; i++){
  console.count(i);
}

输出:

8. console.group() 和 console.groupEnd()


group() 和 groupEnd() 可以让我们把内容分组到一个单独的块中。就像 time() 和 timeEnd() 一样,它们需要以相同值的标签作为参数。你还可以对组执行展开或折叠操作。

console.group('group1'); 
  console.warn('warning'); 
  console.error('error'); 
  console.log('I belong to a group'); 
console.groupEnd('group1'); 
console.log('I dont belong to any group');

输出:

9. 为你的日志添加样式


还可以在控制台日志添加样式,使日志看起来更漂亮。只需要把 CSS 样式作为 log() 函数的第二个参数,同时第一个参数以 %c 开始即可。

const spacing = '10px'; 
const styles =  `padding: ${spacing}; background-color: white; color: red; font-style: italic; border: 1px solid black; font-size: 2em;`; 
console.log('%cI am a styled log', styles);

输出:

总结


console 对象对代码调试非常有用。但是很多人通常只用 log 函数。从现在开始应该充分利用 console 对象,以便更轻松地调试并生动地查看浏览器日志。