jslint中的“意外++”错误[重复]

2020/11/14 00:42 · javascript ·  · 0评论

什么对于那么最好的做法是什么?

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

编辑:代码,按要求:

  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];
        }
    }
  }

i += 1如果要遵循jslint的建议,改用。

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

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

var i = 0, j = 0;
alert(i++ +j);

这将i和j相加(并增加i作为副作用),导致警报为0。

但是有人会来移动空间吗?

var i = 0, j = 0;
alert(i+ ++j);

现在,此操作首先递增j,然后将i添加到j的新值,从而导致1被警告。

这可以很容易地通过解决

var i = 0, j = 0;
alert((i++) +j); 

现在,这不能弄错。

就个人而言,我更喜欢自己将诸如陈述之类的语句i++放在一行上。将它们作为较大的语句的一部分包含在内可能会使那些不确定该行应该做什么的人感到困惑。

例如,代替:

value = func(i++ * 3);

我会这样做:

value = func(i * 3);
i++;

这也意味着人们不必记住工作方式i++++i工作原理,从而无需应用太多的偏好规则。

++操作员的真正问题在于它是一个具有副作用的操作员,因此它完全与功能编程的原理相反。

功能性”的实现i++方式是i = i + 1在没有副作用的情况下显式重新分配变量,然后再使用它。

混淆的可能性是++通过添加一个值并将其重新分配给变量来做两件事。

JSLint友好循环

for (i = 0; i < 10; i += 1) {
    //Do somthing
}

请注意,++运算符取决于相对于上一个/下一个变量和换行符/分号的位置,以确定操作顺序。

var a = 1;
var b = a++;
console.log(b); // b = 1
console.log(a); // a = 2

var a = 1;
var b = ++a;
console.log(b); // b = 2
console.log(a); // a = 2

有一种叫做前递增的:++ i和后递增的i ++,但有一个区别:

var i = 9;
alert(++i); //-> alerts 10

var j = 9;
alert(j++); //-> alerts 9
alert(j);   //-> alerts 10 now, as expected

var k = 9;
alert((k++)); //-> still alerts 9 even with extra parentheses
本文地址:http://javascript.askforanswer.com/jslintzhongdeyiwaicuowuzhongfu.html
文章标签: ,  
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!