前言

本文已经发布视频点击查看

开发过程中,浏览器的调试非常重要,可以说是必备的技巧,本文我就会分享一些自己掌握的技巧,欢迎补充

我们默认使用Chrome浏览器,但是你使用新edge浏览器也是可以的

在开发者界面中,你可以使用ctrl + shift +P打开快捷输入运行常用命令,这和mac上的非常相似

也可以点击此处查看更多官方文档

界面

点击Dock side可以切换控制台显示位置,点击1.可以打开控制台设置

在设置页面的appearance中可以进行更多的页面设置

快捷键

很多人去百度快捷键,完全没有必要啊

移动设备调试

点击切换到1.移动端预览,点击左上角的2.responsive可以切换到响应式窗口,此时你可以通过2.1、2.2、2.3来拖动修改窗口大小,也可以通过3.直接输入窗口大小,可以通过4.修改窗口比,左上角还提供了非常多的机型选择,还可以通过5.来添加更多的机型

如果你的网络允许,能访问(不存在的网站),当你选择机型的时候,浏览器还会自动生成手机壳,点击1.可以切换手机壳的显示,点击2.可以打开尺子,点击3.可以截取当前屏幕,点击4.可以截取当前整个页面长图,点击5.可以恢复到默认设置

console控制台

console其实就是浏览器的一个可交互命令行,用来输出调试信息和脚本执行

如果你想要在控制台输入换行可以使用shift + enter

你可以点击左方区域来切换对应的显示,点击1.设置一个动态表达式来监听,2.过滤输出,3.清空,右方可以设置一些需要输出的信息

$选择器

是的在浏览器控制台中你可以获得jQuery的选择器体验

我们随便选择一个节点,这里是一个小技巧,可以直接复制节点的选择器

动态表达式

点击1.这个小眼睛,可以输入一些JavaScript表达式,比如我们输入Date.now();,就会一直监控时间的变化了

用这个方式我们可以监听页面的某一个节点的变化

monitorEvents($("#app > div.page-title > h1"))

然后我们将鼠标放置到这个节点上方,就可以监听并打印出对应的事件了

你还可以指定要监听的事件monitorEvents($("#app > div.page-title > h1"),['focus'])

monitor还有更多的用法

function sum(x, y) {
return x + y;
}
monitor(sum);

基本的打印

console.log("log");
console.info("info");
console.error("error");
console.warn("warn");

assert

当值为false的时候会触发打印

var result = false;
console.assert(result, 'result is false');

占位符

console.log('%cover','color:red;font-size:48px');
# c是样式占位符
console.log('name:%s','lookroot')

统计时间

console.time("执行时间");
for(let x=0;x<100000000;x++){}
console.timeEnd("执行时间");

以表格方式打印

var userlist=[{name:'lookroot',age:21},{name:'lili',age:18}]
console.table(userlist)

转化为对象打印更方便

在日常开发中我们为了知道数据是谁输出的,需要给打印语句写一个tag

var username="lookroot";
console.log("username:"+username);

其实可以直接转化为对象更为方便

console.log({username})

分组打印

console.group("分组1");
console.log("1.1");
console.log("1.2");
console.groupEnd();
console.group("分组2");
console.log("2.1");
console.log("2.2");
console.groupEnd();

dir完整打印

如果你需要关注一个节点的完整属性可以使用dir打印,这里要介绍第二个小技巧,点击store as global variable可以将这个节点作为全局属性,就不用再通过选择器去获取它了

点击以后,会生成一个template..的属性,此时只需要打印这个属性名就可以直接打印这个节点了

自定义打印

如果上面的打印都还不能满足你的需求,Chrome允许你自定义你的打印格式

window.devtoolsFormatters = [{
header: function(data) {
if (data.isRed) {
return ['div',{style: "color: red;"}, data.msg]
}
},
hasBody: function() {
return false;
}
}]

我们要使用它非常简单

console.log({isRed:true,data:"red console"})

还可以进一步封装一下

console.red=function(data){
console.log({isRed:true,msg:data})
}

更多内容可以查看我的个人博客

浏览器调试的必知必会,零基础足够详细-第一节console面板、移动端调试的更多相关文章

  1. 零基础学Java第一节(语法格式、数据类型)

    本篇文章是<零基础学Java>专栏的第一篇文章,从本篇文章开始,将会连更本专栏,带领大家将Java基础知识彻底学懂,文章采用通俗易懂的文字.图示及代码实战,从零基础开始带大家走上高薪之路! ...

  2. Visual Studio 使用及调试必知必会

    原文:Visual Studio 使用及调试必知必会   一:C# CODING 技巧 1:TODO 然后 CTRL + W + T,打开任务列表,选中 Comments,就会显示所有待做的任务 2: ...

  3. .NET零基础入门09:SQL必知必会

    一:前言 仿佛到了更进一步的时候了,每一个程序员迟早都会遇到数据存储的问题.我们拿什么来存储程序产生的数据?举例来说,用什么来存储我们的打老鼠游戏每次的成绩呢?选择如下: 1:内存中.缺点,退出游戏, ...

  4. 迈向高阶:优秀Android程序员必知必会的网络基础

    1.前言 网络通信一直是Android项目里比较重要的一个模块,Android开源项目上出现过很多优秀的网络框架,从一开始只是一些对HttpClient和HttpUrlConnection简易封装使用 ...

  5. 脑残式网络编程入门(三):HTTP协议必知必会的一些知识

    本文原作者:“竹千代”,原文由“玉刚说”写作平台提供写作赞助,原文版权归“玉刚说”微信公众号所有,即时通讯网收录时有改动. 1.前言 无论是即时通讯应用还是传统的信息系统,Http协议都是我们最常打交 ...

  6. 《MySQL 必知必会》读书总结

    这是 <MySQL 必知必会> 的读书总结.也是自己整理的常用操作的参考手册. 使用 MySQL 连接到 MySQL shell>mysql -u root -p Enter pas ...

  7. SQL 必知必会

    本文介绍基本的 SQL 语句,包括查询.过滤.排序.分组.联结.视图.插入数据.创建操纵表等.入门系列,不足颇多,望诸君指点. 注意本文某些例子只能在特定的DBMS中实现(有的已标明,有的未标明),不 ...

  8. .NET程序员项目开发必知必会—Dev环境中的集成测试用例执行时上下文环境检查(实战)

    Microsoft.NET 解决方案,项目开发必知必会. 从这篇文章开始我将分享一系列我认为在实际工作中很有必要的一些.NET项目开发的核心技术点,所以我称为必知必会.尽管这一系列是使用.NET/C# ...

  9. 2015 前端[JS]工程师必知必会

    2015 前端[JS]工程师必知必会 本文摘自:http://zhuanlan.zhihu.com/FrontendMagazine/20002850 ,因为好东东西暂时没看懂,所以暂时保留下来,供以 ...

随机推荐

  1. 强化学习 3—— 使用蒙特卡洛采样法(MC)解决无模型预测与控制问题

    一.问题引入 回顾上篇强化学习 2 -- 用动态规划求解 MDP我们使用策略迭代和价值迭代来求解MDP问题 1.策略迭代过程: 1.评估价值 (Evaluate) \[v_{i}(s) = \sum_ ...

  2. 2020-05-11:redis 10G 内存开一个实例 和redis 1G内存开10个实例有什么区别

    福哥答案2020-05-11: 此答案不完善,仅供参考.开10个实例相对更占资源,在多核下能充分利用资源.

  3. 2、java数据类型转换

    当数据类型不一样时,将会发生数据类型转换. 1.自动类型转换(隐式) 1. 特点:代码不需要进行特殊处理,自动完成. 2. 规则:数据范围从小到大. System.out.println(1024); ...

  4. Python | 浅谈并发锁与死锁问题

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是Python专题的第24篇文章,我们一起来聊聊多线程场景当中不可或缺的另外一个部分--锁. 如果你学过操作系统,那么对于锁应该不陌生. ...

  5. 免费API接口记录

    用来记录一些无次数限制的免费API接口,主要是聚合数据上和API Store上的一些,还有一些其他的. 手机号码归属地API接口: https://www.juhe.cn/docs/api/id/11 ...

  6. JAVA-单例模式的几种实现方式

    一.什么是单例模式 单例:保证一个类仅有一个实例,并提供一个访问它的全局访问点. 单例模式是一种常用的软件设计模式之一,其目的是保证整个应用中只存在类的唯一个实例. 比如我们在系统启动时,需要加载一些 ...

  7. bluetoothctl命令提示No default controller available

    在学习bluetoothctl命令时,执行bluetoothctl,然后执行show,提示No default controller available. 1. 执行hciconfig,发现有hci0 ...

  8. 获取 python 包的路径

    root@ostack01:~# python Python 2.7. (default, Nov , ::) [GCC 5.4. ] on linux2 Type "help", ...

  9. HTTP基础--请求

    请求,由客户端向服务器端发出,可以分为4部分:请求方法(Request Method),请求的网址(Request URL),请求头(Request Headers),请求体(Request Body ...

  10. 【新鲜出炉的个人项目】基于 Flink 的商品推荐系统

    FlinkCommodityRecommendationSystem Recs FlinkCommodityRecommendationSystem(基于 Flink 的商品推荐系统) 1. 前言 系 ...