一文带你深刻了解控制台console那些事

一、前言

首先感谢小伙伴们访问我的博客,但是你是有多么的无聊才会选择打开我的控制台呢?不过还是很感谢大家通过邮件的形式,给我提出很多的宝贵意见

借此机会正好和大家唠一唠前端console到底有什么魔法。

Snipaste_2024-03-29_22-03-51.png

二、console.log调试必备

console.log我敢说这是我们前端打工仔程序调试过程中必备的一个方法。

说到这想起来之前同事问我这么一个问题:

2.1 问题描述

为什么console.log('123' + { name: 'iyongbao'})打印的是123[object Object]

我就不要脸的给不懂的(和我一样的小白)解释一下这个是怎么来的:

我们知道,JavaScript是弱类型语言,像+号这种:

  1. 如果+号两边是字符串类型:那就是直接拼接:‘1’ + ‘2’ = ‘12’
  2. 如果+号一边是字符串,一边是对象(object)也就上边这样,在进行+运算之前,对象会‘努力’的去转换为String类型,于是乎对象就会调用toString方法,结果就是’[object Object]',然后在和字符串进行拼接,就得到了123[object Object]

小结:其实前端console有很多有意思的方法,他们并不是只有花哨,本章节我就好好给大家普及一下console其他方法的妙用。

三、console方法知多少

不要只是使用console.log,我们更应该尝试一些新方法,有助于缓解我们的眼疲劳

3.1 console.warn 警告

尝试着去使用warn来调试我们的程序。

Snipaste_2024-03-30_22-22-30.png

是不是特别的醒目,这就让我们联想到Vue有时也会给我们提示类似的警告信息。

3.2 console.error 错误提示

这个也类似于console.warn,基本常出现在我们经常使用的一些前端框架中。

Snipaste_2024-03-30_22-28-12.png

3.3 console.table 表格输出

这个方法很有意思,你可能第一次听说。不过这个方法确实很很有,它会把我们的对象(数组)表格的形式进行直观展现。

const response = {
    
    name: 'iyongbao',
    age: 26,
    front: 'Vue',
    backstage: 'Java'
}

console.table(response);

Snipaste_2024-03-30_22-37-34.png

3.4 console.time、console.timeEnd 时间间隔

我们可以通过这两个方法来计算程序的运行时间,比如我们来计算1000次循环所需要的时间,我们就可以像下面这样:

console.time('运行时间');

for(let i = 0; i < 1000; i ++) {}

console.timeEnd('运行时间');

Snipaste_2024-03-30_22-45-25.png

四、控制台花活

最近就是和大家说一下我的个人网站,控制台那些文字是怎么输出出来的。其他细心的小伙伴可能会看到,当我们访问度娘的时候,打开控制台也会有类似的操作。

Snipaste_2024-03-30_22-49-56.png

4.1 %c样式占位符

首先是%c这个符号我们会用到,它可以设置文本的样式,和我们写css一样。

console.log('%c 大家好', 'color: red;');

Snipaste_2024-03-30_22-54-08.png

剩下的就需要靠大家发挥自己的想象喽!

五、总结

最近工作有点忙,但是又特别想和大家一起分享点小技能,所以更新的很慢,每天下班回家基本都已经快十点了,也希望大家能够谅解,最近在研究Arcgis,如果有这方面学习的小伙伴我们可以一起进行学习和交流。

### Mall4J 部署教程 #### 前置条件 为了成功部署 Mall4J 商城系统,需确保环境满足以下依赖项的要求:Docker、Java (JDK 1.8+)、Node.js 和 npm、以及 Git 已经正确安装并配置完成[^1]。 #### 获取项目源码 通过指定的 Gitee 地址下载项目的最新版本。可以使用如下命令克隆仓库至本地: ```bash git clone https://gitee.com/yueerba/mall4cloud.git ``` 此地址为经过个人修改后的分支版本,适用于特定需求场景下的定制化开发[^2]。 #### 数据库初始化与中间件部署 在正式运行应用之前,需要依次完成多个基础组件和服务的搭建工作,具体包括但不限于以下几个方面: - **MySQL 8.0**: 提供关系型数据库支持用于存储业务数据表结构设计及其关联逻辑定义说明文档可参阅官方手册或者社区贡献资料。 - **Canal**: 负责监听 MySQL 主库变更事件并将这些更新同步给其他下游消费者实例实现准实时的数据复制机制。 - **RocketMQ**: 构建高效可靠的消息传递平台来处理订单创建通知等异步操作流程中的消息分发任务。 - **Elasticsearch & Kibana**: 支撑全文检索能力的同时还允许管理员直观查看索引状态统计图表界面展示效果样例如下所示[^3]: ```json { "query": { "match": { "shopName": "Example Shop" } }, "highlight": { "fields": { "shopName": {} } } } ``` - **Nacos**: 统一管理中心负责动态发现远程调用目标节点位置信息并通过集中式的参数管理降低运维成本提升灵活性适应快速迭代节奏的需求特点. - **Seata**: 解决跨微服务之间因网络抖动等原因引发的一致性问题保障全局事务提交失败回滚的安全边界控制策略执行效率最大化原则指导实践案例分享. - **Redis**: 缓存热点商品详情页减少后端压力提高用户体验流畅度指标表现优异值得推荐采用方案之一. - **MinIO**: 对象存储解决方案适配多终端访问权限验证规则严格遵循最佳安全防护措施保护敏感资产不被非法获取风险隐患降到最低限度范围内合理利用资源分配比例达到预期收益目标值以上. #### 后续步骤 当上述所有前置准备工作完成后即可按照既定计划安排时间窗口启动容器编排脚本文件从而自动化完成整个系统的上线发布过程最终呈现给用户一个稳定可靠的电商平台形象面貌。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值