草庐IT

Var_dump

全部标签

javascript - 为什么带有数组的 'for(var item in list)' 在 JavaScript 中被认为是不好的做法?

给定一个简单的从零开始的数字索引数组:varlist=['Foo','Bar','Baz'];很多时候,我注意到当有人建议像这样循环遍历数组中的变量时:for(variteminlist){...}...几乎可以肯定有人认为这是不好的做法,并提出了一种替代方法:varcount=list.length;for(vari=0;i不使用上面更简单的版本而使用第二个示例的原因是什么? 最佳答案 首先,for...in循环的循环顺序是未定义的,因此不能保证属性会按照您想要的顺序迭代。其次,for...in遍历对象的所有可枚举属性,包括从其原

javascript - 没有 var、let 或 const 的对象解构

如果前面没有var关键字,为什么对象解构会抛出错误?{a,b}={a:1,b:2};抛出SyntaxError:预期的表达式,得到'='下面三个例子没有问题var{a,b}={a:1,b:2};var[c,d]=[1,2];[e,f]=[1,2];奖励问题:为什么我们不需要var来解构数组?我在做类似的事情时遇到了问题function(){var{a,b}=objectReturningFunction();//Nowaandbarelocalvariablesinthefunction,right?//Sowhycan'tIassignvaluestothem?{a,b}=objec

javascript - for (var key in object) 在 CoffeeScript 中?

这个问题在这里已经有了答案:HowtouseJavascript'sfor(attrinthis)withCoffeescript(3个答案)关闭8年前。如何在CoffeeScript中使用for(varkeyinobject)?它编译为...for(_i=0,_len=object.length;_i...但我只想遍历一个对象。

javascript - 是 var self = this;坏模式?

我发现自己需要:varself=this;我的javascript“类”中有很多。虽然这很普遍,但感觉有点不对。我希望在这个问题中找到一个更好的方法来处理这个问题,或者让我相信这是完全没问题的。这是保持正确绑定(bind)的标准方法吗?我是否应该在任何地方都使用“self”来标准化,除非我明确需要“this”。编辑:我很清楚我为什么需要这个,我只是想知道它是否被认为有点邪恶以及为什么。我知道还有“应用”内置javascript函数可以在调用方法时显式定义范围。好点了吗? 最佳答案 正如其他人所说:这个“额外变量”(在某种程度上)是了

javascript - JSLint 错误 : Move all 'var' declarations to the top of the function

JSLint站点已更新,我无法再检查JS脚本。对我来说,这个警告并不严重,我不想通过数千行来解决这个问题,我想找到更严重的问题。有人知道如何关闭此错误,或使用旧版JSLint吗?更新例子:functiondoSomethingWithNodes(nodes){this.doSomething();for(vari=0;ijslint.com输出:Error:Problematline4character8:Moveall'var'declarationstothetopofthefunction.for(vari=0;i问题:在函数之上添加变量是新要求。我无法使用JSLINT来测试代码

javascript - 通过字符串 var 获取自定义对象属性

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:javascriptobject,accessvariablepropertyname?试图让我的JS更高级......我有一个自定义对象:ObjectmyObject=newObject();myObject.thing=anythingHere;我希望能够通过传入一个字符串来检索自定义对象属性...例如:varpropertyString='thing';alert(myObject.propertyString);我不太明白。我看过许多关于自定义对象的教程-但没有任何内容显示如何获取我不知道名称的属性.

javascript - "var FOO = FOO || {}"(将变量或空对象分配给该变量)在 Javascript 中意味着什么?

查看在线源代码时,我在几个源文件的顶部看到了这个。varFOO=FOO||{};FOO.Bar=…;但我不知道||是什么{}会。我知道{}等于newObject()并且我认为||用于“如果它已经存在”之类的东西使用它的值,否则使用新对象。为什么我会在源文件的顶部看到这个? 最佳答案 您对||{}意图的猜测非常接近。在文件顶部看到的这种特殊模式用于创建一个命名空间,即一个命名对象,可以在该命名对象下创建函数和变量,而不会过度污染全局对象。为什么使用它的原因是,如果您有两个(或更多)文件:varMY_NAMESPACE=MY_NAMES

javascript - "var"或在 JavaScript "var"for-in"循环中没有 's "?

在JavaScript中编写for-in循环的正确方法是什么?浏览器不会对我在此处显示的两种方法中的任何一种发出投诉。首先,有一种明确声明迭代变量x的方法:for(varxinset){...}或者这种读起来更自然但对我来说似乎不正确的方法:for(xinset){...} 最佳答案 使用var,它会缩小变量的范围,否则变量会查找最近的闭包来搜索var语句。如果它找不到var那么它就是全局的(如果你在严格模式下,usingstrict,全局变量会抛出错误)。这可能会导致如下问题。functionf(){for(i=0;i如果您在fo

javascript - 这个 'for' 循环是否停止,为什么/为什么不停止?对于 (var i=0; 1/i > 0; i++) { }

这个for循环会停止吗?for(vari=0;1/i>0;i++){}如果是,何时以及为什么?有人告诉我它停止了,但我没有得到任何理由。更新作为调查的一部分,我写了一篇相当冗长和详细的文章,解释了幕后发生的一切-HereiswhatyouneedtoknowaboutJavaScript’sNumbertype 最佳答案 (我不是元内容的粉丝,但是:gotnull's和le_m's答案既正确又有用。它们最初是,而且更是如此在发布此社区Wiki后进行的编辑。由于这些编辑,此CW的原始动机在很大程度上消失了,但它仍然有用,所以...另外

javascript - `var { ... } = ...` 语句中的花括号有什么作用?

不确定这是否是特定于Mozilla的JS语法,但我经常发现变量以这种方式声明,例如,在add-onSDKdocs中:var{Hotkey}=require("sdk/hotkeys");并且在各种chromeJavascript中(let语句被用来代替var),let{classes:Cc,interfaces:Ci,results:Cr,utils:Cu}=Components;我发现它非常困惑,但我无法找到关于这两种语法的任何文档,即使是在MDN上也是如此。. 最佳答案 您看到的是解构赋值。它是patternmatching的一