12种 console 相关的方法,帮你快速提高调试效率!(建议收藏)

错误:

console.error(‘I’m sorry Dave, I’m afraid I can’t do that’);

或不太重要的调试信息:

console.debug(‘nothing to see here - please move along’);

console.table()可以以更友好的格式输出对象的值。

const obj = {

propA: 1,

propB: 2,

propC: 3

};

console.table( obj );

01.png

或对象的数组:

const arr2 = [

{ a: 1, b: 2, c: 3 },

{ a: 4, b: 5, c: 6 },

{ a: 7, b: 8, c: 9 }

];

console.table( arr2 );

02.png

其他选项包括:

  • console.dir( obj ) 显示一个 JS 对象的交互式属性列表

  • console.dirxml( element ) 显示指定的HTML或XML节点的子代元素的互动树。

  • console.clear() 清除控制台之前的所有信息。

3.过滤日志消息

浏览器以适当的颜色显示日志信息,但也可以进行过滤,以显示特定的类型。点击控制台窗格左上方的图标,就可以打开Chrome的侧边栏。

03.png

注意,console.debug()信息只有在查看 verbose 选项时才会显示。

4. 使用 printf-type 的信息

所有的日志类型都可以使用c 语言风格的printf消息格式,该格式定义了一个模板,其中包含一个变量被替换的%指示器。例如

console.log(

‘The answer to %s is %d.’,

‘life, the universe and everything’,

42

);

// The answer to life, the universe and everything is 42.

带样式的风格

console.log(

‘%cOK, things are really bad now!’,

`

font-size: 2em;

padding: 0.5em 2em;

margin: 1em 0;

color: yellow;

background-color: red;

border-radius: 50%;

`

);

控制台中的结果:

04.png

6. 使用类似测试的断言

类似于测试的console.assert()命令可以用来在条件失败时输出一个信息。可以用一个条件和一个或多个对象来定义断言,当该条件失败时输出,例如

console.assert(

life === 42,

‘life is expected to be’,

42,

‘but is set to’,

life

);

另外,也可以使用一个信息和替换值。

console.assert(

life === 42,

‘life is expected to be %s but is set to %s’,

42,

life

);

当条件失败时,这两个选项都会显示一个断言错误。

05.png

7. 运行堆栈跟踪

可以使用 console.trace() 输出构成当前执行点的所有函数调用的日志。

function callMeTwo() {

console.trace();

return true;

}

function callMeOne() {

return callMeTwo();

}

const r = callMeOne();

跟踪显示每次调用是哪一行,并且可以在控制台窗格中折叠或展开:

06.png

8. 组日志消息

打印日志时,可以在开头使用console.group( label ) 和结尾使用 console.groupEnd() 将日志消息分成命名组。 消息组可以嵌套和折叠或展开(console.groupCollapsed( label ) 最初显示处于折叠状态的组):

// start log group

console.group(‘iloop’);

for (let i = 3; i > 0; i–) {

console.log(i);

// start collapsed log group

console.groupCollapsed(‘jloop’);

for (let j = 97; j < 100; j++) {

console.log(j);

}

// end log group (jloop)

console.groupEnd();

}

// end log group (iloop)

console.groupEnd();

07.png

9. 使用定时器

HTTP

  • HTTP 报文结构是怎样的?

  • HTTP有哪些请求方法?

  • GET 和 POST 有什么区别?

  • 如何理解 URI?

  • 如何理解 HTTP 状态码?

  • 简要概括一下 HTTP 的特点?HTTP 有哪些缺点?

  • 对 Accept 系列字段了解多少?

  • 对于定长和不定长的数据,HTTP 是怎么传输的?

  • HTTP 如何处理大文件的传输?

  • HTTP 中如何处理表单数据的提交?

  • HTTP1.1 如何解决 HTTP 的队头阻塞问题?

  • 对 Cookie 了解多少?

  • 如何理解 HTTP 代理?

  • 如何理解 HTTP 缓存及缓存代理?

  • 为什么产生代理缓存?

  • 源服务器的缓存控制

  • 客户端的缓存控制

  • 什么是跨域?浏览器如何拦截响应?如何解决?

  • 12
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值