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. 实现栈最小元素的min函数

    #include<iostream> #include<stack> using namespace std; class min_stack { public: void p ...

  2. Python远程视频监控

    Python远程视频监控程序   老板由于事务繁忙无法经常亲临教研室,于是让我搞个监控系统,让他在办公室就能看到教研室来了多少人.o(>﹏<)o||| 最初我的想法是直接去网上下个软件,可 ...

  3. svn签出单个文件

    ) { return new string[]{ string.Format("cd /d \"{0}\"",System.IO.Path.GetDirecto ...

  4. jQuery图片切换插件jquery.cycle.js

    Cycle是一个很棒的jQuery图片切换插件,提供了非常好的功能来帮助大家更简单的使用插件的幻灯功能 下载cycle插件并引入,此时,注意把引入它的代码放在引入jQuery主文件之后. <he ...

  5. JavaEE:Tomcat服务器常用配置和HTTP简介

    Web服务器常用配置1.Web系统采用B/S结构通信的:Browser --- Server1)浏览器向服务器发送访问目标资源请求(请求)2)服务器根据请求的目标资源路径,在服务器端进行查找(请求查找 ...

  6. iOS7 初体验

    iOS7 初体验 近日来由于iOS7的发布,引来业界的各种吐槽. 为了体验一把,我已经把iPhone5刷成了iOS7,也下载Xcode5-DP并进行了测试.我想说的是iOS7与Xcode5-DP中新增 ...

  7. Servlet的Request.getInputStream()只能读取一次问题

    Servlet的Request.getInputStream()只能读取一次问题 这个星期公司的项目接口进行改造,公司的接口有的采用了WebService的方式,有的使用的是Http协议+Servle ...

  8. 用T4消除代码重复,对了,也错了

    用T4消除代码重复,对了,也错了 背景 我需要为int.long.float等这些数值类型写一些扩展方法,但是我发现他们不是一个继承体系,我的第一个思维就是需要为每个类型重复写一遍扩展方法,这让我觉得 ...

  9. elasticsearch data importing

    ElasticSearch stores each piece of data in a document. That's what I need. Using the bulk API. Trans ...

  10. Servle中的会话管理

    最近整理了下会话管理的相关笔记,以下做个总结: 一.会话管理(HttpSession) 1.Web服务器跟踪客户状态的四种方法: 1).使用Servlet API的Session机制(常用) 2).使 ...