Chrome内置了一些开发者工具,这些工具提供了很多的功能。今天,我们将会专注于JavaScript控制台。

在我编程的过程中,这个控制台为我提供了大量的帮助。

如果你正在电脑端阅读这篇文章,你可以在阅读的同时打开Chrome来实践一下。

1. 选择DOM元素


如果你熟悉jQuery,你一定知道$(‘.class’)和$(‘#id’)选择器有多重要。它们会通过类或是与其相关的ID来选择DOM元素。

但是其实在开发者控制台中,即使你无法在DOM中使用jQuery,你一样可以这样选择。

$(‘tagName’) $(‘.class’) $(‘#id’)和$(‘.class #id’)相当于document.querySelector(‘ ‘)。它会反回DOM中与选择器相符的第一个元素。

你可以使用$$(‘tagName’)或是$$(‘.class’) 来根据具体的选择器来选择所有DOM中的所有元素。这个操作会生成一个字符串。之后,你可以通过定义元素在字符串中的位置,来选择某个特定的元素。

例如,$$(‘.className’)能帮你选择所有带有“className”这个类的元素。而$$(‘.className’)[0]和$$(‘.className’)[1]能够让你选择字符串中的第一个和第二个元素。

2. 将浏览器转换为编辑器


你是否曾经想要在浏览器中编辑文本?没问题,你可以将浏览器转化为编辑器。然后在DOM中添加或是移除文本。

你不再需要检查元素,然后编辑HTML文件。现在,你只需要打开开发者控制台,然后输入下列命令:

document.body.contentEditable=true

这个命令会让内容编程可以编辑的形式。之后你就可以在DOM中进行编辑了。

3.在DOM中寻找与某个元素相关联的Event

在调试的时候,你一定想要在DOM中找到与某个元素相关联的event。使用开发者控制台,你可以更轻松的完成这个目标。

getEventListeners($(‘selector’))会发挥一个对象字符串,里面包含着与那个元素有关的所有event。你可以展开对象,查看这些event:

要想找到某个特定event的Listener,你可以使用下面这个命令:

 getEventListeners($(‘selector’)).eventName[0].listener 

4. 监测Events


当DOM中的某个特定的元素在运行的时候,如果你想要监测与这个元素有关的event,你可以通过开发者控制台来完成。你可以通过多个不同的命令来监测这些event:

monitorEvents($(‘selector’))会根据选择器中的元素,监测与这个元素有关的所有event,然后在控制台中对这些event进行记录。

monitorEvents($(‘selector’),’eventName’)会记录与某个元素有关的一个特定event。你可以将event的名称作为argument对象发送给函数。

monitorEvents($(‘selector’),[‘eventName1’,’eventName3’,….])会根据你的要求记录多个event。

unmonitorEvents($(‘selector’)) :停止监测与控制台中的记录。

5. 寻找某个代码库的执行时间

JavaScript控制台有一个名叫console.time(‘labelName’)的基本函数,它会将label的名称作为argument对象,然后开始计时。还有另一个名叫console.timeEnd(‘labelName’)的基本函数,用来停止计时。

例如:

 console.time('myTime'); //Starts the timer with label - myTime

console.timeEnd('mytime'); //Ends the timer with Label - myTime

//Output: myTime:123.00 ms

我们可以使用这两条命令来统计某个代码段的执行时间。

例如,如果我想确定一个loop的执行时间,我可以这样做:

console.time('myTime'); //Starts the timer with label - myTime

for(var i=0; i < 100000; i++){

  2+4+5;

}

console.timeEnd('mytime'); //Ends the timer with Label - myTime

//Output - myTime:12345.00 ms

6. 将变量的值在图标中显示


假设我有一个下面这样的由对象组成的字符串:

 var myArray=[{a:1,b:2,c:3},{a:1,b:2,c:3,d:4},{k:11,f:22},{a:1,b:2,c:3}]

在控制台中,当我们输入变量的名称时,它会以对象字符串的形式为我们提供值。这个功能非常实用,你可以展开对象,查看这些值。

但是,随着变量的数量的增多,我们很难对其进行查看。因此,为了更好的查看变量,我们可以用图表的方式对其进行显示。

你可以使用console.table(variableName)来完成这个目的:

7. 在DOM中对某个元素进行检查


你可以在控制台中直接对某个元素进行检查:

inspect($(‘selector’))会根据你所输入的选择器对元素进行检查。

$0, $1, $2……能帮你找到最近检查过的元素。

8. 列出元素的Property


如果你想要列出元素的所有property,你可以使用dir($(‘selector’)),它会返回一个带有所有property的对象,你可以展开对象,查看更多细节。

9. 取回最后一个结果的值


你可以将控制台作为计算器使用。你可以用下面的方式从内存中取回上一次计算的结果:

 $_ 

Here’s what this looks like:

2+3+4

9 //- The Answer of the SUM is 9

$_

9 // Gives the last Result

$_ * $_

81  // As the last Result was 9

Math.sqrt($_)

9 // As the last Result was 81

$_

9 // As the Last Result is 9

10. 清空控制台和内存


如果你要清空控制台以及内存,你只需要输入:

clear()

然后点击回车,就是真么简单。

Chrome开发者控制台的这些功能你都知道吗?的更多相关文章

  1. 多了解一下Chrome开发者控制台

    多了解一下Chrome开发者控制台 2017年10月14日 • Tools, Web前端 • 1.0k views • 暂无评论 作为一名前端开发者,Chrome内置的控制台是必须了解的,它拥有非常丰 ...

  2. Chrome 开发者控制台使用技巧

    Chrome 有内置的开发者工具.它拥有丰富的特性,比如元素(Elements).网络(Network)和安全(Security).今天,我们主要关注一下 JavaScript 控制台. 当我最初写代 ...

  3. Chrome开发者工具不完全指南:(三、性能篇)

    卤煮在前面已经向大家介绍了Chrome开发者工具的一些功能面板,其中包括Elements.Network.Resources基础功能部分和Sources进阶功能部分,对于一般的网站项目来说,其实就是需 ...

  4. 【译】在 Chrome 开发者工具中调试 node.js

    原文链接 : Debugging Node.js in Chrome DevTools 原文作者 : MATT DESLAURIERS 译文出自 : 掘金翻译计划 译文链接 : https://git ...

  5. 在 Chrome 开发者工具中调试 node.js

    命令行工具 devtool ,它可以在 Chrome 的开发者工具中运行 Node.js 程序. 下面的记录显示了在一个 HTTP 服务器中设置断点的情况. 该工具基于 Electron 将 Node ...

  6. 谷歌Chrome浏览器开发者工具的基础功能

    上一篇我们学习了谷歌Chrome浏览器开发者工具的基础功能,下面介绍的是Chrome开发工具中最有用的面板Sources.Sources面板几乎是最常用到的Chrome功能面板,也是解决一般问题的主要 ...

  7. (转)Chrome开发者工具不完全指南(一、基础功能篇)

    本篇转载自卖烧烤夫斯基,并做了小部分的修改. 原文地址:Chrome开发者工具不完全指南(一.基础功能篇) 原作者:卖烧烤夫斯基 就算你不是一名前端开发工程师,相信你也不会对Chrome浏览器感到陌生 ...

  8. [转]谷歌Chrome浏览器开发者工具教程—基础功能篇

    来源:http://www.xiazaiba.com/jiaocheng/5557.html Chrome(F12开发者工具)是非常实用的开发辅助工具,对于前端开发者简直就是神器,但苦于开发者工具是英 ...

  9. Chrome 开发者控制台中,你可能意想不到的功能

    Chrome 有内置的开发者工具.它拥有丰富的特性,比如元素(Elements).网络(Network)和安全(Security).今天,我们主要关注一下 JavaScript 控制台. 当我最初写代 ...

随机推荐

  1. APNs功能之Node.js和Mysql应用总结

    APNs功能之Node.js和Mysql应用总结 这篇文档主要是总结Node.js和Mysql的学习心得体会.当然也可以看作是此前所写的消息推送服务的续篇. 简单描述下应用背景,我们的应用需要实现苹果 ...

  2. PHP gbk转换成utf8

    /** * GBK ASCII 转换成utf8 */ public function to_utf8($str){ $detect = array('ASCII', 'GBK', 'UTF-8'); ...

  3. C# list distinct操作

    使用代理实现对C# list distinct操作   范型在c#编程中经常使用,而经常用list 去存放实体集,因此会设计到对list的各种操作,比较常见的有对list进行排序,查找,比较,去重复. ...

  4. 关于给予webApp框架的开发工具

    webApp 1.phonegap webApp即基于html+css+javascript,对于新手会联想好多及疑问(如数据的添删查修如何实现,参数传递如何实现) 添加查修使用jsonp跨域实现的 ...

  5. NCache:最新发布的.NET平台分布式缓存系统

    NCache:最新发布的.NET平台分布式缓存系统在等待Microsoft完成Velocity这个.NET平台下的分布式内存缓存系统的过程中,现在让我们将目光暂时投向其他已经有所建树的软件开发商.Al ...

  6. Httphelper工具1

    [苏飞开发助手V1.0测试版]官方教程与升级报告导读部分------------------------------------------------------------------------ ...

  7. javascript数组、对象和Null的typeof同为object,区分解决办法

    在JS里typeof 大家用的很多,可以使对于数组.对象和Null无法区分的问题,看了看犀牛书还是有解决办法的. document.writeln(typeof "abc"); / ...

  8. [置顶] 使用sping AOP 操作日志管理

    记录后台操作人员的登陆.退出.进入了哪个界面.增加.删除.修改等操作 在数据库中建立一张SYSLOG表,使用Sping 的AOP实现日志管理,在Sping.xml中配置 <!-- Spring ...

  9. IdentityServer4 实现 OpenID Connect 和 OAuth 2.0

    关于 OAuth 2.0 的相关内容,点击查看:ASP.NET WebApi OWIN 实现 OAuth 2.0 OpenID 是一个去中心化的网上身份认证系统.对于支持 OpenID 的网站,用户不 ...

  10. 《微信小程序七日谈》- 第五天:你可能要在登录功能上花费大力气

    <微信小程序七日谈>系列文章: 第一天:人生若只如初见: 第二天:你可能要抛弃原来的响应式开发思维: 第三天:玩转Page组件的生命周期: 第四天:页面路径最多五层?导航可以这么玩: 第五 ...