草庐IT

javascript - 在循环中,结束条件中的任何操作是否在每次迭代中都得到评估?

在下面的代码中:for(vari=0;i操作object.length是否在迭代中每次都被评估?最有意义的是,该语言将对其进行一次评估并保存结果。但是,我正在阅读一些代码,其中有人在循环开始之前评估操作并将其存储在结束条件中使用的变量中。不同的语言对此有不同的处理方式吗?有关于Javascript的具体信息吗? 最佳答案 这显然取决于语言。对于JavaScript,规范(ECMAScript§12.6.3)要求每次都对其求值。作为一种优化,特定的JavaScript运行时可以跳过一个或多个length调用,如果它可以证明结果不会改变

javascript - i++ 与 JavaScript for 循环中的++i

因为JSLint,我几乎总是使用i+=1来递增JavaScriptfor循环,但对于快速和肮脏的脚本,我使用i++代替。但是,我在其他人的代码中看到了很多for循环,他们通过执行++i来增加i。据我所知,i++和++i在含义上没有区别,jsPref在性能上也没有区别。因此,我想知道执行++i的约定从何而来,以及为什么人们倾向于这样做。有谁知道为什么在for循环中递增计数器时,很多JS编码人员倾向于选择++i而不是i++?谢谢。 最佳答案 区别在于i++返回i递增前的值,++i返回i的值>递增后。如果您忽略返回值,则没有区别,例如在:

javascript - 使for循环中的函数调用同步

我在请求中得到了一个字符串数组。每个字符串都包含一个要在nativeshell上执行的命令。varprocess=require('child_process');functionexecCommand(req,res,callback){varparams=req.params.list//listisanarrayintherequestvarresult='';varcommand='';for(vari=0;i所有命令的结果都混合在result变量中。如何使for循环中的函数调用同步? 最佳答案 使用execSync而不是e

JavaScript:while 循环中的异步方法

我正在处理一个项目,该项目要求我将JavaScript与API方法调用结合使用。我是一名Java程序员,之前从未进行过Web开发,所以我遇到了一些麻烦。此API方法是异步的,并且处于while循环中。如果它返回一个空数组,则while循环结束。否则,它会循环。代码:vardone=true;do{async_api_call("method.name",{//Dostuff.},function(result){if(result.error()){console.error(result.error());}else{//Setsthebooleantotrueifthereturn

javascript - 在循环中对 setTimeout 延迟应用缓动

我在javascript循环中调用多个setTimeout。当前设置的延迟在每次迭代时增加200毫秒,使得“self.turnpages()”函数每200毫秒触发一次。不过,我想对这些可变延迟应用某种缓动,这样当循环开始到达最后几次迭代时,延迟会进一步分开,从而导致函数触发速度减慢。varself=this;vartime=0;for(vari=hide,len=diff;i我完全不知道如何开始。希望有人能提供帮助。 最佳答案 这听起来像是RobertPenner的缓和方程式的工作!您可以下载原始的ActionScript2.0版本

for 循环中的 Javascript WebSQL 查询。如何知道何时完成?

我想我有一个相对简单的问题,但我一直在思考,甚至​​谷歌也没有给我一个我可以使用的答案。基本上,我正在尝试使用WebSQL复制一些存储在本地的记录。复制不是问题,但我需要知道所有复制操作何时完成才能继续我的程序。WebSQL调用是异步的,所以我通常做这些事情的唯一方法是使用回调函数。但是,因为查询是在for循环内完成的,所以我不能使用回调函数,因为它会在第一个完成的查询时触发,如代码所示。代码如下:functioncopyRecords(old_parent_id,new_parent_id,callback){vardb=openDatabase('test','1.0','test

javascript - 向对象原型(prototype)添加函数会导致函数出现在所有 'for X in OBJ' 循环中

所以,这里有一些示例javascript代码:Object.prototype.simpleFunction=function(){returntrue;}vartempObject={};for(vartempintempObject){console.log(temp);}请注意,如果执行此操作,您将从GoogleChrome中的console.log命令获得“simpleFunction”输出。(我正在使用19.0.1084.46m。)但是,各种相关的对象函数不会传递到console.log。如何将函数添加到Object原型(prototype),而不让它们出现在我的“forpr

javascript - 什么函数被放入 Node Js 和 JS 的事件循环中

我一直在阅读一些NodeJs文章以了解其异步性质,在此期间我发现了它并且非常喜欢它Node.js,Doctor’sOfficesandFastFoodRestaurants–UnderstandingEvent-drivenProgrammingEventLoop是一种基于FIFO的队列。他们说当异步函数被命中时,它会被放入EventLoop并将继续在那里执行。我在这里有点困惑。例如据说here:Inactuality,asyncfunctionslikesetTimeoutandsetIntervalarepushedontoanqueueknownastheEventLoop.在同

javascript - 'setTimeOut' 在 JavaScript 'for' 循环中调用,为什么会失败?

这个问题在这里已经有了答案:AsynchronousProcessinsideajavascriptforloop[duplicate](6个答案)JavaScriptclosureinsideloops–simplepracticalexample(44个答案)关闭5年前。让我澄清一下我的问题。我不是在问如何让下面的代码工作。我知道您可以使用let关键字或捕获它自己的i值的iffe。我只需要说明在以下代码中如何访问值i。我阅读了以下博客文章,了解以下代码为何不起作用。Blogpostfor(vari=1;i作者声称代码将无法运行,因为我们将变量i作为引用而不是值传递。也就是说,不是每

javascript - typescript 如何在foreach循环中访问组件变量?

嘿,有人能告诉我如何在foreach循环中访问组件变量吗?这是我的PlunkerpublictestVariable:number;test(){console.log('fired');varx=[1,2,3,4];x.forEach(function(e){this.testVariable=e;})console.log(this.testVariable);} 最佳答案 如果你使用function(e),它里面的this会引用函数的作用域而不是类。改用ArrowFunction(或FatArrow):x.forEach((e