首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >jslint中的“意外++”错误

jslint中的“意外++”错误
EN

Stack Overflow用户
提问于 2010-06-09 02:44:30
回答 8查看 52.5K关注 0票数 147

什么是的最佳实践呢?

Jslint解释说它“增加了混乱”。我真的看不出来...

编辑:代码,根据要求:

代码语言:javascript
复制
  var all,l,elements,e;
  all = inElement.getElementsByTagName('*');
  l = all.length;
  elements = [];
  for (e = 0; e < l; (e++))
  {
    if (findIn)
    {
        if (all[e].className.indexOf(className) > 0)
        {
            elements[elements.length] = all[e];
        }
    } else {
        if (all[e].className === className)
        {
            elements[elements.length] = all[e];
        }
    }
  }
EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2010-06-09 12:42:39

长期以来的最佳实践是:遵循jslint的建议,改用i += 1

至于为什么它比++更好,根据克罗克福德的说法:

增量++和减量--操作符使得以极其简洁的风格编写代码成为可能。在像C这样的语言中,他们使得编写一行代码成为可能:for (p = src, q = dest; !*p; p++, q++) *q = *p;大多数产生可怕安全漏洞的缓冲区溢出错误都是由于下面这样的代码造成的。在我自己的实践中,我观察到当我使用++--__时,我的代码往往太紧凑、太棘手、太神秘。所以,作为一个纪律问题,我不再使用它们了。

编辑:包含了来自Nope的评论,因为这个答案继续获得评论。请继续为他的评论投赞成票:)

票数 94
EN

Stack Overflow用户

发布于 2012-09-18 19:17:59

只需在javascript文件前面添加/*jslint plusplus: true */即可。

票数 88
EN

Stack Overflow用户

发布于 2010-06-09 02:54:11

为了避免混淆,以及在使用小型符时可能出现的问题,当与相同的(+或-)一起使用时,请始终使用括号将运算符及其操作数括起来。

代码语言:javascript
复制
var i = 0, j = 0;
alert(i++ +j);

这会将i和j相加(并将i作为副作用递增),从而导致0被警告。

但是,什么是有人出现并移动空间?

代码语言:javascript
复制
var i = 0, j = 0;
alert(i+ ++j);

现在,这首先使j递增,然后将i与j的新值相加,导致1被警告。

这可以通过执行以下操作轻松地解决

代码语言:javascript
复制
var i = 0, j = 0;
alert((i++) +j); 

现在,这不可能是错误的。

票数 28
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3000276

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档