JavaScript console 四个实用功能

简介: 相信每个 JavaScript 开发者 都使用过 console.log("msg")。

相信每个 JavaScript 开发者 都使用过 console.log("msg")


image.png


除此之外,你还使用过哪些?


image.png


是不是有些头大 - 这么多。我们来点实在点的,在我们工作中能够用到的知识点。


当然,你很想弄清楚这些方法具体是什么,查阅官网是个不错的选择。


本文章基于谷歌【版本 96.0.4664.110(正式版本) (arm64)】讲解


1. log() | info() | debug() | warn() | error


上面展示的五个方法,都是打印信息,你可以传一个或者多个参数。


console.log("log");
console.info("info");
console.debug("debug");
console.warn("warn");
console.error("error");
复制代码


⚠️ 如果你在控制台上看不到 console.debug 的内容,请勾选 Console -> All levels -> Verbose


通过比对效果,可以将log() | info() | debug()归类,这也难怪使用info()debug()这两个方法的频率少。


console.log() 加入样式之后,在控制台上展示的内容比较有意思。通常会在各大平台系统上加入招聘广告之类的内容。比如百度的网页。


image.png


又比如京东商城的网页。咦咦咦,有报错,来个程序员祭天?开玩笑,大家都是混口饭吃而已...


image.png


还有啥这样的站点,读者可以自己去探索一下。


这些展示是怎么实现的呢?


其实就是使用 %c 符号命令,应用 CSS 样式。如下:


console.log("%c 红色的文本, 14号粗字体", "color: red; font-size: 14px; font-weight: bolder;")
复制代码


好了,我们知道原理了,一起来实现下百度站点的效果:


let arr = ['每一个星球都有一个驱动核心,', '每一种思想都有影响力的种子。', '感受世界的温度,', '年轻的你也能成为改变世界的动力,', '百度珍惜你所有的潜力。', '你的潜力,是改变世界的动力!'];
let str = (arr.map(item => item+'\n')).join('');
console.log(`%c${str}`, 'color: #333;');
console.log('%c百度2022校园招聘简历投递:%chttps://talent.baidu.com/external/baidu/campus.html', 'color: #f00;', 'color: #333;');
复制代码


感兴趣的读者可以到百度控制台上比对一下效果。嗯,这些控制台招聘信息,看起来有些酷,你还可以实现更酷的,比如下面这个:


Function.prototype.makeMulti = function () {
  let l = new String(this)
  l = l.substring(l.indexOf("/*") + 3, l.lastIndexOf("*/"))
  return l
}
let string = function () {
        /* 
 _          __ __    __  _____   ______ 
| |        / / \ \  / / /  ___| |___  / 
| |  __   / /   \ \/ /  | |        / /  
| | /  | / /     }  {   | |  _    / /   
| |/   |/ /     / /\ \  | |_| |  / /__  
|___/|___/     /_/  \_\ \_____/ /_____|          
        */
}
if (window.console) {
console.log(string.makeMulti());
console.log("欢迎来到%c无效工作%c演示区", "color:red;font-weight:bold;", "");
}
复制代码


⚠️ 上面生成的 无效工作 的字符串,你可以通过站点 字符生成线条字 来获取。


嗯~


可是使用 console.log() 在生产环境上,说好听点,是产品打磨,但是 鸡肋


扯远了~ 回归正题


2. table()


console.table() 用来展示数组或对象的数据。


let arr = [{ 
    firstName: 'John', 
    lastName: 'Doe',
    age: 2 
   }, 
   { 
    firstName: 'William', 
    lastName: 'Shakespeare', 
    age: 3 
    }];
console.table(arr);
复制代码


当然,你还可以指定展示哪些列,比如只是展示上面👆的 firstNamelastName 数据。


let arr = [{ 
    firstName: 'John', 
    lastName: 'Doe',
    age: 2 
   }, 
   { 
    firstName: 'William', 
    lastName: 'Shakespeare', 
    age: 3 
    }];
console.table(arr, ['firstName', 'lastName']);
复制代码


当然,当数组或者对象进行嵌套的时候,展示的效果就不理想了,比如:


let obj = {
  name: "jimmy",
  children: {
    name: "neo"
  }
};
console.table(obj);
复制代码


在视觉呈现上,一层数据,console.table()console.log() 要佳。


⚠️ 语法 console.table(data [, columns])


3. group() 和 groupEnd()


使用分组功能,对你的数据更加有层级掌控。刚才的 table() 处理多层级功能的时候处理能力很差。那么多层级的数据可以考虑以下面的方式呈现。


console.group();
  console.log("层级1");
  console.group();
    console.log("层级1-1");
    console.log("层级1-2");
  console.groupEnd();
  console.log("层级2");
  console.group();
    console.log("层级2-1");
  console.groupEnd();
console.groupEnd();
复制代码


这有点像 HTML 中的 ol有序 或 ul无序列表。


嗯...在权限管理或者查看多层数据格式的时候,这个打日志的方式还是比较友好地进行数据比对的。


至于其他的场景应用,还是 console.log() 好用。


4. time() 和 timeEnd()


检查你代码运行的性能。


console.time('Time')
let count = 0;
for(let i = 0; i < 100; i++) {
    count += i;
}
console.log("total: ", count);
console.timeEnd('Time');
复制代码


如果你做的业务跟图表相关的内容,比如金融基金,也许这个功能对你很有帮助。



相关文章
|
2月前
|
JavaScript 前端开发
JavaScript分页功能
JavaScript分页功能
|
8天前
|
JavaScript 容器
带方向感知功能的js图片遮罩层插件
带方向感知功能的js图片遮罩层插件
|
1月前
|
JavaScript 前端开发 容器
jQuery多功能滑块插件r-slider.js
r-slider.js是一款jQuery多功能滑块插件。使用该插件,可以制作出滑块、开关按钮、进度条、向导步骤等多种效果。
37 5
|
1月前
|
JavaScript
js实现简洁实用的网页计算器功能源码
这是一款使用js实现简洁实用的网页计算器功能源码。可实现比较基本的加减乘除四则运算功能,界面简洁实用,是一款比较基本的js运算功能源码。该源码可兼容目前最新的各类主流浏览器。
27 2
|
2月前
|
人工智能 JavaScript 网络安全
ToB项目身份认证AD集成(三完):利用ldap.js实现与windows AD对接实现用户搜索、认证、密码修改等功能 - 以及针对中文转义问题的补丁方法
本文详细介绍了如何使用 `ldapjs` 库在 Node.js 中实现与 Windows AD 的交互,包括用户搜索、身份验证、密码修改和重置等功能。通过创建 `LdapService` 类,提供了与 AD 服务器通信的完整解决方案,同时解决了中文字段在 LDAP 操作中被转义的问题。
|
2月前
|
JavaScript 前端开发 API
|
2月前
|
JavaScript API UED
vue.js怎么实现全屏显示功能
【10月更文挑战第7天】
53 1
|
2月前
|
资源调度 JavaScript UED
如何使用Vue.js实现单页应用的路由功能
【10月更文挑战第1天】如何使用Vue.js实现单页应用的路由功能
|
2月前
|
JavaScript 搜索推荐
JS中的模糊查询功能
JS中的模糊查询功能
40 1
|
2月前
|
前端开发 JavaScript
使用 JavaScript 实现图片预览功能
使用 JavaScript 实现图片预览功能
59 0