console

第一印象便是console.log,通过它在浏览器控制台进行调试输出。但除此之外还有许多方法。
比如在访问百度首页时候的控制台,会有以下的内容。但是仔细一看,你会发现,它有颜色。怎么做到的呢?

其实不难发现,输入console,可知它是一个对象,里面有着高达14个方法,而我们最常用只有一个log(),可怕。

Console - Web API 接口参考 | MDN

JavaScript Console 对象 | 菜鸟教程


通过文档我们清晰的知道各个方法的作用,以及使用方法。

通过占位符,可以改变输出的内容和样式。其中%c被称为 CSS占位符。

详解

console.log()

首先,除了console.log(object)这种语法,还有console.log(object, otherObject, string)将所有东西都整齐的打印出来。另外,还有console.log(msg, value),通过占位符来输出,执行方式与 C 语言的输出类似。

对于%c,输出样式。

一个%c是将此后所有内容都进行渲染

console.log('I am a %cbutton', 'color: white; background-color: orange; padding:2px 5px; border-radius: 2px');

两个%c则是对其中间内容渲染。

console.log('I am a %cbutton%c not a div', 'color: white; background-color:orange; padding: 2px 5px; border-radius: 2px','color: "auto"');

当然渲染的只是样式,没有实质性的功能(按钮,点击事件等)

如果想%c展示出来呢? 与\类似,写两个即可,比如将上述的语句展示出来。

console.log('I am a %cbutton%%c not a div', 'color: white; background-color:orange; padding: 2px 5px; border-radius: 2px','color: "auto"');

console.dir()

通常看,它与log()的功能非常类似,但也有略微不同,主要在对文档结构的输出方面。


展开来看,log只是输出了文档结构的内容,怎么写的怎么输出。清晰展示DOM节点,当我们选中时候,还可以跳转子DOM节点。

dir却是一种更对象化的输出方式观察元素节点,在监测元素节点方面,这种结果无疑是最好的。

console.warn()

它可能是log()最直接明显的替换产生的方法,它的级别是warn级别而不是一个info级别,你可以将所有的console.log()过滤掉只留下console.warn()

在Vue的部分源码中也是使用console.warn()来操作的。

//vue.js
tip = function (msg, vm) {if (hasConsole && (!config.silent)) {console.warn("[Vue tip]: " + msg + (vm ? generateComponentTrace(vm) : ''));}
};

console.table()

这个,就是将对象数组展示为列表的数据方法,变得更加简洁可观。例如对一个对象数组使用此方法。

对于log()输出结果是一个小箭头的省略形式,展开来看,可以清晰的查看对象。


table()的输出更加简洁,更直观展示。并且值得一提的是,可以通过第一行的右上角箭头可以进行排序。table()最多只处理1000行的数据能力,不适用所有数据集合。

当然如果只想要某一列展示,可以通过第二个参数进行传递

console.table(transactions,["id","price"])

console.assert()

它的第一个参数是falsey时,与log()函数无异。当第一个参数是真值的时候什么都不做。

牢记,它的作用是判断,而不是过滤。

它的使用场景与 循环时候要显示特殊的 数据相似。

if(obj.num === 3){console.log(obj)
}

假设我们上面的值在时间戳里有一个 null 或者 0,这会破坏代码日期格式。

当和任何有效的事物对象一起使用时会跳过。但是有一个触发了我们的日志记录,因为时间戳在 0 和 null 时为假值。

有时候,想实现更加复杂的场景,举例,对于上述表格中看到了关于用户WAL2025的数据,并想展示来自它们的事务。

console.assert(transactions.buyer === 'WAL2025', transactions);

看起来没毛病,但是并没有用,牢记,场景必须是否定态,它的作用是判断,而不是过滤。

console.assert(transactions.buyer !== 'WAL2025', transactions);

结语

剩下的方法,演示过于困难或者简单,还是看文档理解比较好。

Console - Web API 接口参考 | MDN

JavaScript Console 对象 | 菜鸟教程

其他方法的存在,让我们可以得到比log()的信息更多一些,并且不需要调试器的情况下,这些工具还是很有用的。

附图

简洁直观的理解使用 console

[图片来源:B站Zhangyaing]

javaScript的console相关推荐

  1. IE下javascript的console方法

    IE下javascript的console方法 FireFox 和 Chrome 下调试JS都有console,IE6下没有.特用此办法来兼容IE6. <br /><pre lang ...

  2. javascript 中 console 的用法

    javascript 中 console 的用法 视频 https://www.bilibili.com/video/BV1g7411L751?from=search&seid=1567656 ...

  3. JavaScript 控制台(console)调试技巧

    一.简单理解 Console是用于显示JS和DOM对象信息的单独窗口.在浏览器中按F12调出的调试窗口中有一个控制台选项或console选项. 二.支持console的浏览器 Chrome和FireF ...

  4. HTML控制台输出console,Javascript的console.log()用法

    把下面代码保存为html文件,然后IE8---F12---脚本---控制台里就会出现有趣的东西,如果是Firefox,安装了FireBug后,则F12--控件台--所有 ,同样可以看到. javasc ...

  5. 高级Javascript调试——console.table()

    原文:http://www.mariusschulz.com/2013/11/13/advanced-javascript-debugging-with-consoletable 本文只是简单翻译,部 ...

  6. javaScript中console.log()的用法

    console.log()类似于alert啊,不过不会打断操作.主要是方便调式javascript用的.你可以看到你在页面中输出的内容,不过需要浏览器支持控制台输出.在浏览器界面使用快捷键 F12 就 ...

  7. Javascript:console - 使用须知!

    最近为了在程序中使用console.dir打印对象结构,因而使用了console. console在IE中,可能只有9,10支持. 在IE浏览器中,按F12打开控制台的时候,打印很正常,但是不开控制台 ...

  8. JavaScript关于console的使用

    1.关于HTML(无CSS) 1.1 HTML部分 <p onClick="makeGreen()">BREAK×DOWN</p> 2.JavaScript ...

  9. javascript通过console.log()控制台输出各种字体样式(3D文字、彩色背景色体)

    一.3D文字 javascript代码如下: <script type="text/javascript"> console.log("%c 神码服云&quo ...

最新文章

  1. 2. 离散特征处理方法--特征交叉 feature crosses
  2. Go的GAPATH详解
  3. mysql util_关于mysql数据库操作工具类MySQLUtils用于连接数据提交sql脚本及结果转为JSONArray等操作...
  4. linux shell之paste合并文件和找到匹配的文件里面替换内容(find和-exec或xargs组合)
  5. mysql+yes数据类型,怎样修改mysql列的数据类型?
  6. java 传入多个参数时报Parameter 'XXX' not found. Available parameters are [arg1, arg0, param1,... 解决方案...
  7. win系统删除,已经注册的服务
  8. linux下redis开机自启动
  9. 关于作者(《蓝调口琴指南》名作拙译)
  10. 20145202马超《java》实验5
  11. Java线程唤醒与阻塞的定义与使用方法
  12. ckpt为savermodel模型并TRT调用的问题
  13. 通过 web 录制视频(摄像头)并上传
  14. SPSS学习 相关性分析
  15. 数据存储的未来,磁带是赢家?!
  16. 怎样压缩ppt的大小?
  17. postgresql开启日志
  18. java 中 枚举 大括号 用法
  19. hdu 2036 改革春风吹满地(叉积求多边形面积)
  20. python爬去新浪微博_GitHub - dataabc/weiboSpider: 新浪微博爬虫,用python爬取新浪微博数据...

热门文章

  1. linux设备树笔记__dts基本概念及语法
  2. offsetof 详解
  3. 【转】互联网产品经理常用软件及工作平台
  4. 【C++Primer笔记】第四章 表达式
  5. pantum打印机驱动安装m6506_一键完成 驱动轻松装_奔图 M6506NW_办公打印评测试用-中关村在线...
  6. 如何有效实现软件的需求管理 - 7
  7. 使用nginx搭建音视频点播服务——基于DASH协议
  8. excel python 文字中间横杠_怎么在“excel”中的文字中间划一道横线?
  9. E: Could not get lock /var/lib/dpkg/lock-frontend. It is held by process 1446 (unattended-upgr)报错信解决
  10. Linux常用命令cp详解