java中的console是干什么的_[Java教程]javascript中,你真的会用console吗?

[Java教程]javascript中,你真的会用console吗?

0 2015-08-11 17:00:09

使用console进行性能测试和计算代码运行时间

对于前端开发人员,在开发过程中经常需要监控某些表达式或变量的值,如果使用用debugger会显得过于笨重,最常用的方法是会将值输出到控制台上方便调试。最常用的语句就是console.log(expression)了。

从早前一道阿里实习生招聘笔试题目入手:function f1() { console.time('time span'); } function f2() { console.timeEnd('time span'); } setTimeout(f1, 100); setTimeout(f2, 200); function waitForMs(n) { var now = Date.now(); while (Date.now() - now < n) { }//空while } waitForMs(500);//输出什么? //->time span: 0ms //实际测试输出的是 time span: 0.023ms //实际的time是不确定的接近于0ms的,而不是0ms;

我们先说说关于console的高级操作,最后在一起分析这道题目。

trace

console.trace()用来追踪函数的调用过程。

在大型项目尤其是框架开发中,函数的调用轨迹可以十分复杂,console.trace()方法可以将函数的被调用过程清楚地输出到控制台上。function tracer(a) { console.trace(); return a; } function foo(a) { return bar(a); } function bar(a) { return tracer(a); } var a = foo('tracer');

输出chrome:console.trace() tracer @ VM127:3 bar @ VM127:12 foo @ VM127:8 (anonymous function) @ VM127:15 InjectedScript._evaluateOn @ VM116:895 InjectedScript._evaluateAndWrap @ VM116:828 InjectedScript.evaluate @ VM116:694

table

使用console将对象以表格呈现

可将传入的对象,或数组以表格形式输出,相比传统树形输出,这种输出方案更适合内部元素排列整齐的对象或数组,不然可能会出现很多的 undefined。var people = { flora: { name: 'floraLam', age: '12' }, john: { name: 'johnMa', age: '45' }, ray:{ name:'rayGuo', age:'22' } }; console.table(people);(index)nameage

flora"floraLam""12"

john"johnMa""45"

ray"rayGuo""22"

time和timeEnd

计算程序的执行时间(成对出现)

可以将成对的console.time()和console.timeEnd()之间代码的运行时间输出到控制台上console.time('计时器'); for (var i = 0; i < 1000; i++) { for (var j = 0; j < 1000; j++) { //空 } } console.timeEnd('计时器'); //->计时器: 725.726ms

profile

使用console测试程序性能function parent() { for (var i = 0; i < 10000; i++) { childA() } } function childA(j) { for (var i = 0; i < j; i++) {} } console.profile('性能分析'); parent(); console.profileEnd();

现在说回笔试题目题目考察对console.time的了解和js单线程的理解。function f1() { console.time('time span'); } function f2() { console.timeEnd('time span'); } setTimeout(f1, 100); setTimeout(f2, 200); function waitForMs(n) { var now = Date.now(); while (Date.now() - now < n) { }//空while } waitForMs(500);//->time span: 0ms

console.time()语句和console.timeEnd()语句是用来对程序的执行进行计时的。

setTimeout()接受两个参数,第一个是回调函数,第二个是推迟执行的毫秒数。setTimeout()只是将事件插入了"任务队列",必须等到当前代码(执行栈)执行完,主线程才会去执行它指定的回调函数。

因为f1和f2被都setTimeout事先设置的定时器装到一个事件队列里面。本来 f1应该在100ms后就要执行了,但是因为waitForMs占用了线程,而执行JavaScript是单线程的,所以就没办法在100ms后执行那个 f1,所以需要等500ms等waitForMs执行完,然后在执行f1和f2,这时候f1和f2就几乎同时执行了。

还有一种说法:setTimeout()的第二个参数告诉javascript再过多长时间把当前任务添加到队列中。

本文网址:http://www.shaoqun.com/a/131846.html

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:admin@shaoqun.com。

JavaScript

0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/304500.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

边缘计算k8s集群之SuperEdge

什么是边缘计算边缘计算&#xff0c;是指在靠近物或数据源头的一侧&#xff0c;采用网络、计算、存储、应用核心能力为一体的开放平台&#xff0c;就近提供最近端服务。其应用程序在边缘侧发起&#xff0c;产生更快的网络服务响应&#xff0c;满足行业在实时业务、应用智能、安…

python中getrandbits函数用法_python random - 刘江的python教程

random阅读: 8288评论&#xff1a;1random模块用于生成伪随机数。真正意义上的随机数(或者随机事件)是按照实验过程中表现的分布概率随机产生的&#xff0c;其结果是不可预测的。而计算机中的随机数是所谓的随机函数按照一定算法模拟产生的&#xff0c;其结果是确定的&#xff…

让你的系统移动起来

最近一直在捣鼓linux系统&#xff0c;听一大哥说想搞好它&#xff0c;最简单的方法就是经常用&#xff0c;用的久了也就自然简单了。。就跟我们用windows一样。。在linux系统里&#xff0c;我最喜欢的是Ubuntu。。个人感觉它做的还不错&#xff0c;有丰富的三方软件支持&#x…

java一个界面用另一个界面的值_如何将参数/值从一个弹出窗口传递到Angular2中的另一个弹出窗口...

我在Angular2中有一个要求&#xff0c;我需要打开第一个弹出窗口&#xff0c;用户会输入一些值 . 在某些用户事件(即按钮单击)上&#xff0c;我需要关闭该弹出窗口并打开另一个弹出窗口&#xff0c;其中包含用户在第一个弹出窗口中输入的值 .我创建了一个plunker&#xff0c;我…

简约而不简单的 Django 新手图文教程

来源&#xff1a;cizixssegmentfault.com/a/1190000008387882本文面向&#xff1a;有python基础&#xff0c;刚接触web框架的初学者。环境&#xff1a;windows7&#xff0c;python3.5.1&#xff0c;pycharm专业版&#xff0c;Django 1.10版&#xff0c;pip3一、Django简介百度百…

通俗系列之同步、异步、阻塞和非阻塞

前言在日常的开发中&#xff0c;经常出现同步、异步、阻塞和非阻塞等概念。有些人搞不清楚什么代码是同步&#xff0c;什么代码是异步。有些人说我用异步了啊&#xff0c;为什么效率还是没提高呢&#xff1f;也许你是用异步了&#xff0c;但是可能是异步阻塞了。有些人一听说异…

python的matplotlib库内的函数_如何在matplotlib中找到函数下面的区域?

我是python和matplotlib库的新手&#xff0c;我试图在绘图中得到函数行下方的区域。我有一个变量a&amp&#xff1b;b&#xff0c;它在我的绘图中移动一个矩形。我也许可以使用原始数学来解决这个问题&#xff0c;但我想知道是否有一种更简单的方法来实现我正在尝试使用matp…

局域网一点通之组网、管网、用网1000问

(51cto.com)局域网一点通之组网、管网、用网1000问转载于:https://blog.51cto.com/laowu2517/241359

【直观详解】支持向量机SVM

【阅读时间】13min - 19min【内容简介】详解解读什么是支持向量机&#xff0c;如何解支持向量以及涉及的拉普拉斯乘子法&#xff0c;还有核方法的解读。1什么是支持向量机-SVM支持向量机-SVM(Support Vector Machine)从本质来说是一种&#xff1a;用一条线&#xff08;方程&…

C# 打印PDF文档的10种方法

操作PDF文档时&#xff0c;打印是常见的需求之一。针对不同的打印需求&#xff0c;可分多种情况来进行&#xff0c;如设置静默打印、指定打印页码范围和打印纸张大小、双面打印、黑白打印等等。经过测试&#xff0c;下面将对常见的几种PDF打印需求做一些归纳总结&#xff0c;这…

遗传算法经典实例代码_经典算法研究系列 之 深入浅出遗传算法

关注数学&#xff0c;关注AI&#xff0c;关注我们公众号ID&#xff1a;Math-AI经典算法研究系列遗传算法1初探遗传算法Ok&#xff0c;先看维基百科对遗传算法所给的解释&#xff1a;遗传算法是计算数学中用于解决最优化的搜索算法&#xff0c;是进化算法的一种。进化算法最初是…

java buffalo_随你怎么玩!Buffalo 网络硬盘新潮流

现代时尚的办公环境是怎样的&#xff1f;ADSL、无线网络、笔记本、还有咖啡&#xff0c;惬意地被沙发包裹起来&#xff0c;自由自在地网上冲浪……&#xff1b;当然仅仅有这些还是不够&#xff0c;我们需要视频会议、需要网络下载、甚至打印、扫描&#xff0c;还有需要随时随地…

关于Virtual-Hosting的理解

最近在Apache上架设Virtual-hosts 时&#xff0c;发现启动了httpd-vhost.conf 之后&#xff0c;再用IP 访问Main Server&#xff08;httpd.conf&#xff09;的设置就失效了。比如说原来 在 htdocs/下有一些应用程序&#xff0c;就不能够再访问到。用IP所有的请求就被转发到了&…

.NET gRPC核心功能初体验

gRPC是高性能的RPC框架&#xff0c; 有效地用于服务通信(不管是数据中心内部还是跨数据中心)。由Google开源&#xff0c;目前是一个Cloud Native Computing Foundation&#xff08;CNCF&#xff09;孵化项目。其功能包括&#xff1a;•双向流•强大的二进制序列化•可插拔的身份…

为什么我怎么也理解不了波粒二象性,是因为智商不够吗?

大家好&#xff0c;各位观众。如果你们之前不能完全理解波粒二象性&#xff08;现象本身&#xff0c;或者这个概念的内涵和外延&#xff09;。不用担心&#xff0c;我认为十有八九不是智商问题&#xff1a;量子物理的内容有太多“反常识”了。很多时候&#xff0c;是我们的脑袋…

python反射、闭包、装饰器_python之闭包、装饰器、生成器、反射

1. 函数的作用域1.在函数定义时候就固定&#xff0c;与调用位置无关&#xff0c;在调用的时候返回到函数定义的位置x1 #全局作用def f1(): #整个f1函数是定义阶段deff2():print(x)returnf2deffoo(func):x3func()#func()调用阶段x200 #这样定义x又变成全局了foo(f1()) #执行foo(…

设备间的连线图例

转载于:https://blog.51cto.com/51fashion/243017

化学版2048,你玩过吗?内含游戏链接

今天来给大家推荐一款游戏——Na&#xff08;钠&#xff09;&#xff0c;也可以叫它化学版2048。首先2048大家都不陌生&#xff0c;曾经火爆一时的小游戏&#xff0c;于14年由年仅19岁的意大利程序员加布里勒希鲁尼&#xff08;Gabriele Cirulli&#xff09;开发出来。2048游戏…

ajax jquery php_基于Ajax jquery的使用php登录

我使用基于PHP的登录表单与Ajax和jQuery以下是我的登录表单Please Sign InLoginRegister和我的阿贾克斯代码登录$("button#submit").click(function () {if ($("#username").val() "" || $("#password").val() "")$("…

sqlsession.selectlist 会返回null么_StackOverflow经典问题:代码中如何去掉烦人的“!=nullquot;判空语句...

推荐阅读&#xff1a;程序员引路人&#xff1a;腾讯T4曰“面试不仅仅是技术过硬就可以了&#xff0c;你还需要懂得这些”​zhuanlan.zhihu.com问题为了避免空指针调用&#xff0c;我们经常会看到这样的语句if (someobject ! null) { someobject.doCalc();}最终&#xff0c;项…