继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

你不知道的console

游魂Andy
关注TA
已关注
手记 26
粉丝 27
获赞 179
前言

对于前端开发者,使用console.log() 次数绝对很多,但是大部分人认识的console 对象还不是很全面,其实深入了解这些后,你会发现给开发过程带来很多便利,而且还很有趣。

先来看看别人的控制台。

天猫(还加入了字符画)

天猫

百度(这个大家都不陌生,最近还稍微有点改变)

百度

再来看下我博客的

是不是感觉你之前用的console.log()弱爆了,别着急往下看。

重新认识 console

你好我是console,重新认识一下吧。
正在阅读这篇文章的你,F12打开你的控制台,切到Console输入console输出看看这个对象

是不是惊呆了,除了常用的 log 方法还有这么多方法。

console.log() 输出普通信息
console.info() 输出提示信息
console.error() 输出错误信息
console.warn() 输出警告信息

上面这些就不演示了。

console.dir()

显示对象的所有的属性和方法

var obj = {
  str: 'youhun',
  num: 1,
  func: function(){
    console.log('a')
  }
};
console.dir(obj);

console.tabel()

传入对象/数组,以表格形式输出

var obj = {
  foo: {
    name: 'foo',
    age: '33'
  },
  bar: {
    name: 'bar',
    age: '45'
  }
};

var arr = [
  ['foo', '33'],
  ['bar', '45']
];

console.table(obj);
console.table(arr);

console.time()

计时器,可以将成对的console.time()console.timeEnd()之间代码的运行时间输出到控制台上

console.time('计时器');
for (var i = 0; i < 1000; i++) {
  for (var j = 0; j < 1000; j++) {}
}
console.timeEnd('计时器');

console.group()console.groupCollapsed()

输出嵌套,就是分组,同样支持多层嵌套

console.group('第一层');
  console.log('第一层里面');
console.group('第二层');
  console.log('第二层里面');
console.groupEnd();
console.groupEnd();

平时:

ps:console.group 默认是展开状态,console.groupCollapsed 默认是收起状态

console.trace()

用来追踪函数的调用轨迹。大型项目中,这尤为重要。

function add(a, b) {
    console.trace("Add function");
    return a + b;
}

function add3(a, b) {
    return add2(a, b);
}

function add2(a, b) {
    return add1(a, b);
}

function add1(a, b) {
    return add(a, b);
}

var x = add3(1, 1);

console.count()

输出执行次数

(function() {
  for (var i = 0; i < 5; i++) {
    console.count('count');
  }
})();

console.assert()

条件输出,接收两个参数。第一个参数为真时,不输出内容,否则显示,并抛出来一个异常。

console.assert(1 == 1, '你看不到我');
console.assert(1 == 2, '你看到我了');

console.log 的高级玩法

这个为什么单独拿出来说,正是因为这个玩法多样。会了,你可以像文章开头举例那些,做出自己喜欢的console.log

占位符

  • %s 格式化成字符串输出
  • %d or %i 格式化成整数输出
  • %f 格式化成浮点数输出
  • %o 转化成展开的DOM元素输出
  • %O 转化成JavaScript对象输出
  • %c 字符串增加样式输出
var arr = ["小明", "小红"];

var obj = {name:'youhun'}

console.log("欢迎%s和%s两位新同学",arr[0],arr[1]);

console.log("圆周率整数部分:%d,带上小数是:%f",3.1415,3.1415);

console.log('%o', obj);

console.log('%O', obj);

再来试试 %c 来点样式

console.log('%c我的背景是红色', 'color: #fff; background: red; font-size: 24px;'); 

console.log("%c3D Text", " text-shadow: 0 1px 0 #ccc,0 2px 0 #c9c9c9,0 3px 0 #bbb,0 4px 0 #b9b9b9,0 5px 0 #aaa,0 6px 1px rgba(0,0,0,.1),0 0 5px rgba(0,0,0,.1),0 1px 3px rgba(0,0,0,.3),0 3px 5px rgba(0,0,0,.2),0 5px 10px rgba(0,0,0,.25),0 10px 10px rgba(0,0,0,.2),0 20px 20px rgba(0,0,0,.15);font-size:5em");

console.log('%cYouhun', 'background-image:-webkit-gradient( linear, left top, right top, color-stop(0, #f22), color-stop(0.15, #f2f), color-stop(0.3, #22f), color-stop(0.45, #2ff), color-stop(0.6, #2f2),color-stop(0.75, #2f2), color-stop(0.9, #ff2), color-stop(1, #f22) );color:transparent;-webkit-background-clip: text;font-size:5em;');

参考链接
  1. https://developer.mozilla.org/en-US/docs/Web/API/console
  2. http://www.ruanyifeng.com/blog/2011/03/firebug_console_tutorial.html
打开App,阅读手记
6人推荐
发表评论
随时随地看视频慕课网APP