console一定是各位前端最熟悉的小伙伴了 有些网站还会在控制台输出一些有意思的东西,比如招聘信息,像百度的:


也有一些网站可能不喜欢被人调试,只要打开控制台就自动进入调试模式,还是无限debugger的那种,最简单的实现方式如下:

setInterval(() =>{debugger
}, 1000)

console对象是由宿主环境提供的,如浏览器和nodejs,作为全局对象的一个属性,不需要通过构造函数创建,直接使用即可,console对象的__proto__指向的是一个空对象,所以 console对象的方法都挂在对象自身,在 chrome控制台打印console可以看有如下方法或属性:


console输出信息的方法都可以接收多个以逗号分隔的参数,打印的时候会在同一行进行显示,不会换行,想要换行的话请使用console方法打印多次。

1.输出普通的调试信息

可以使用console.log或console.info,这两个方法基本是一样的

2.想输出不同等级的调试信息

调试级别的信息可以使用console.debug方法 警告信息可以使用console.warn方法 错误信息可以使用console.error方法

3.想查看某个DOM元素的所有属性

使用console.dir方法

4.想查看具体的调用位置、调用堆栈等信息

只需要找到调用位置的话,log、info、error等方法都可以,如果还想查看调用堆栈信息的话可以使用console.assert、console.error、console.warn以及专门的方法console.trace,trace方法可以不带参数

5.打印太多的时候可以分组

可以使用console.group方法来进行分组显示,使用console.groupEnd方法结束分组,可以多级嵌套

console.group('xxx')
xxx
console.groupEnd()

6. 类似百度效果

// console要输出换行的字符需要使用\n:
console.log('每一个星球都有一个驱动核心,\n每一种思想都有影响力的种子。\n感受世界的温度,\n年轻的你也能成为改变世界的动力,\n百度珍惜你所有的潜力。\n你的潜力,是改变世界的动力!')
// 输出红色的字可以使用占位符,占位符格式为:console.log('%x其他字符', 'xxx', [xxx, xxx...])
// 设置样式使用%c占位符,可以使用多个,为占位符后面的字符应用样式,替换完占位符还剩下的参数也会正常打印出来
// 除了%c,还有其他几个占位符:%i、%f、%s
console.log('%c百度2021校园招聘简历投递:', 'color:red', 'https://talent.baidu.com/external/baidu/campus.html')

7. 放图片

// 图片的支持性很差,估计很多浏览器都显示不出来
console.log('%c', 'background-image: url(/**.jpg); background-size: 100%; padding:267px 300px;')

8. 更方便的打印对象

我们可以给console加两个方法,一个叫console.obj,先深拷贝一下再打印,另一个叫console.str,把对象序列化后再打印

9. 怎么在生产环境去掉console

想去掉生产环境的console可以通过webpack的插件来做,也可以拦截一下console对象的方法,判断是否是生产环境,是的话就不打印日志了,让我们来重写一下console对象

let oldConsole = window.console
let newConsole = Object.create(null)
// 其他方法这里暂时省略了
;['log'].forEach((method) => {newConsole[method] = function (...args) {// 非开发环境直接返回if (process.env.NODE_ENV !== 'development') {return}oldConsole[method](...args)}
})
window.console = newConsole

console的基础使用相关推荐

  1. js list添加元素_JS基础与常用函数

    JavaScript是没有Print()方法的. 所以要做内容输出,需要用到console.log(xxx) 控制台输出. Chrome浏览器中就可以编写代码,或者在编译器中,写纯JavaScript ...

  2. C#相关基础知识点总结+基础代码

    C#基础知识 同一命名空间下的两个类 using System; using System.Collections.Generic; using System.Linq; using System.T ...

  3. js笔记(一)js基础、程序结构、函数

    大标题 小节 一.js 基础 1. javascript的组成: 2. 运行js: 3. 打印信息: 4. 关键字var: 5. js中的数据类型: 6. NaN(not a number): 7. ...

  4. [console] early printk实现流程

    本文以ARM为例 一.功能说明 printk的log输出是由console实现(会在其他文章中说明).由于在kernel刚启动的过程中,还没有为串口等设备等注册console(在device prob ...

  5. range作用于对象global失败_彻底弄懂JavaScript作用域问题

    这几次都是些的基础文章,可能好多人会说基础不太重要,做前端这么久,也没用到多少基础 (首先恭喜你,已经进提前进入了被优化名单). 下面我们来详细解答一下基础是什么. let 知识, 基础 if (知识 ...

  6. oracle cmd导出数据库命令行,oracle 中数据库完全导入导出:cmd命令行模式(转载)...

    Oracle数据导入导出imp/exp就相当于oracle数据还原与备份.exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中. 利 ...

  7. JavaScript yyds

    JavaScript yyds JavaScript历史 主流浏览器及其内核 JavaScript中的数据类型 typeof函数 特殊情况 显示类型转换 隐式类型转换 函数 命名函数声明 匿名函数表达 ...

  8. JavaScript--前后端交互AjaxjQuery

    1.认识接口文档 配置信息 请求基准地址:http://localhost:端口号 一.状态码 二.开局测试 2.1测试请求1 2.1.1请求地址 2.1.2请求方式 2.1.3携带参数 2.1.4响 ...

  9. Nachos Lab4 文件系统

    Lab4 文件系统 todo:makedep [实习建议] 数据结构的修改和维护 文件管理的升级基于对原有Nachos数据结构的修改.增加文件的描述信息需对文件头结构进行简单修改.多级目录中可创建目录 ...

最新文章

  1. 【活动】人工智能产学研生态建设研讨会报名
  2. 矩阵LU分解分块算法实现
  3. 泰语7个元音变形_大概是最全的音标总结--元音部分
  4. windows xcopy
  5. 使用代码生成建立可扩展序列化器(上)
  6. java 中的fork join框架
  7. 改变listview中item选中时文字的颜色
  8. SharePoint 2013 开发——其他社交功能
  9. java黄金分割点游戏_结对编程1——黄金点小游戏项目简介及需求分析
  10. ps中如何同图层获取css代码
  11. 在fedora linux中,wine 成功安装手记
  12. 避免Ie下的js缓存问题
  13. Jive源码分析:tree树形数据结构
  14. tomcat设置JAVA_OPTS
  15. 使用phantomjs将网页转换成pdf或者长图片
  16. LCD12864 菜单部分编写
  17. vue2.0桌面端框架_Element-UI组件库(Vue2.0桌面端组件库)V2.9.2 免费版
  18. 中国大学生三天连夜做的AI特效小游戏,一天暴涨800万用户!
  19. Promise ,Promise.all 和Promise.race的区别
  20. Python----数据分析-使用scikit-learn构建模型实训(wine数据集、wine_quality数据)

热门文章

  1. 从零到一学爬虫-爬取微博热搜示例
  2. CCS6.1最后安装出现报错如下
  3. 汉堡式折叠html,3种超酷汉堡包菜单按钮变形动画特效
  4. 视频教程-网络安全与渗透测试工程师-渗透测试
  5. 【软件工程】课程管理系统需求分析规格说明
  6. 基于Springboot+MybatisPlus+Layui的商品库存权限管理系统
  7. 高防服务器如何防御?
  8. 录入年、月、日,判断日期的合法性
  9. OCR文字识别谁最好?4款拍照扫描应用横向对比
  10. Python+scrapy+mysql实现爬取磁力链接