草庐IT

javascript - 道格拉斯克罗克福德的 "Javascript: The Good Parts"第 5.5 章

我正在阅读书名中的第5.5章。我仍然无法理解如何使用本章中的eventuality函数“我们可以用零件集组合对象”。对象是否由具有“on”和“fire”功能的事件系统组成?本书下面部分的代码:vareventuality=function(that){varregistry={};that.fire=function(event){//Fireaneventonanobject.Theeventcanbeeither//astringcontainingthenameoftheeventoran//objectcontainingatypepropertycontainingthe//

javascript - 为什么 single var 在 javascript 中很好用?

谁能告诉我为什么对多个变量使用一个var声明并在换行符上声明每个变量被认为是一种好的编程行为?//badvaritems=getItems();vargoSportsTeam=true;vardragonball='z';//goodvaritems=getItems(),goSportsTeam=true,dragonball='z'; 最佳答案 它不被视为“好”或“坏”。这是一个偏好问题。构建代码质量工具JSLint的人,DouglasCrockford喜欢它。它可能具有的一个“优势”是它避免了variablehoisting的

javascript - Chrome 网上商店服务器拒绝带有 "Error : The manifest must define a version."的扩展

注意:这个问题是关于您在进行Chrome开发时使用的manifest.json的version属性。它看起来与下面关于manifest_version的问题类似,但事实并非如此。我真的很想从中吸取教训,但我失败了。NeedtoupdateChromeextensiontomanifestversion2ifnomanifestversionoriginallyspecified?--我目前正在做我的第一个Chrome扩展。强大、有趣、棒极了。除了一件让我烦恼的蠢事。我的Chrome扩展程序是开源的,所以你可以直接转到GitHub上的代码,这样你就可以立即看到我犯了一个愚蠢的错误http

javascript - var i = [0] 在 for 循环中,然后递增 i++ - 为什么它有效?

在我正在阅读的一本书(JavaScript和JQuery-JonDuckett的交互式前端开发)中有一个有趣的错误或者(至少我是这么认为的)它不会阻止代码工作:for(vari=[0];i这是脚本的一部分,它循环遍历表单中的所有单选按钮并附加一个事件监听器(它做什么并不重要)。但是……为什么我要初始化为一个数组?为什么递增有效?为什么整个循环都有效?当然,如果您将vari=[0]替换为vari=0,代码仍然有效。当您添加一些警报以检查循环的每次迭代中i的值和i的类型时,在第二次迭代时i的类型从对象(毕竟在第一次迭代中它是一个数组)变为数字.这是我迄今为止从未遇到过的一种隐式类型转换(谷

javascript - 立即调用函数表达式 : Where to put the parenthesis?

我看过IIFE的写法:(function(){console.log("docoolstuff");})();还有:(function(){console.log("domorecoolstuff");}());在我使用它们的任何情况下,它们似乎都以相同的方式工作,尽管在某些情况下我被告知一种方法是正确的而另一种是错误的,反之亦然。有没有人有任何可靠的理由或逻辑来说明它是一个订单而不是另一个订单?在某些情况下,在函数体关闭之后但在调用括号发挥作用之前,或者在最后一个右括号之后但之前,是否可能会有更多的事情发生?我主要在Angular模块闭包中使用它们,但似乎无法找到任何真正的理由来采用

javascript - Angular 2 自定义验证器 : check if the input value is an integer?

在Angular2项目中,我需要验证一些输入。如何轻松检查输入值是否为整数?我尝试使用Number(control.value)为空字段返回0-不好。或parseInt(control.value,10)不考虑空格:如果我有类似的东西:1space0,24=1,024它返回1-它通过了验证器没有错误。Lodash函数如:_.isInteger(control.value)或_.isNumeric(control.value)//每次都返回false-这是预期的,因为输入值是字符串而不是数字。像这样组合方法会创建一个包含许多if/else语句的困惑函数,即便如此,我也不确定我是否得到了所

javascript - 有没有理由不在 JavaScript 中用 `var` 替换 `let`?

这个问题在这里已经有了答案:WhatistheusecaseforvarinES6?(5个答案)关闭6年前。我的JavaScript长辈问题:抛开事实lethasadifferentvariablescopethanvardoes,在我看来,在绝大多数情况下,没有理由使用var而不是let。当然,如果您在if语句中定义一个变量,这就不是一回事了,但是除了作用域之外还有其他原因需要使用一个变量吗?编辑:明确地说,这个问题是关于JavaScript中的最佳实践(即优缺点),不是之间差异的性质var和let。谢谢!

javascript - "value == var"与 "var == value"

在很多地方,我看到开发人员在做value==var比较,就像这样:if('https'===location.protocol){port=8443;protocol='wss://';isSecure=true;}我知道a==b与b==a相同,那么为什么人们使用value==var而不是var==value?有这方面的标准吗?如果是,哪种是标准方式? 最佳答案 您看到的是yodacondition.Yoda条件描述相同的表达式,但相反:if(42==$value){/*...*/}//Readslike:"If42equalsth

javascript - JSLint 错误 "Unexpected Var"

这个问题不太可能帮助任何future的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visitthehelpcenter.关闭10年前。每当定义2个函数时,JSLint总是给我以下错误:Problematline__character_:Unexpected'var'.我曾尝试在脚本开头声明所有变量,但这并不能解决问题。尝试在网上搜索答案,但似乎找不到。varwalk=functionwalker(node,func){//code}vardisp=functiondisplay(){/

javascript - Node JS 需要没有 var

{这与推特无关}这是一个有趣的问题,有趣的是它可能很愚蠢,你可以笑,但我至少会对这个该死的痒痒有一个答案。目前我在用varBootstrap=require('library/Bootstrap');Bootstrap.run();如果我能在Bootstrapindex.js中做这样的事情,那就太棒了module.exports.Bootstrap=My_Bootstrap;然后这样调用它吧require('library/Bootstrap');Bootstrap.run();无需向我的空间声明另一个变量,有没有办法做到这一点,或者我是否正在盯着屏幕思考、做梦、迷路、回来并浪费时间?