Kdg*_*Dev 146 javascript jslint
什么是对于那么最好的做法是什么?
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];
}
}
}
Run Code Online (Sandbox Code Playgroud)
uno*_*omi 93
使用i += 1相反,如果你想跟随的JSLint的建议.
Ric*_*tag 88
只需/*jslint plusplus: true */在您的javascript文件前添加.
Sea*_*sey 28
为避免混淆,以及使用minifier时可能出现的问题,当与操作符及其操作数一起使用时,始终将parens包裹在同一个(+或 - )中.
var i = 0, j = 0;
alert(i++ +j);
Run Code Online (Sandbox Code Playgroud)
这会增加i和j(并将i作为副作用递增),从而导致0被警告.
但是有人出现并移动空间?
var i = 0, j = 0;
alert(i+ ++j);
Run Code Online (Sandbox Code Playgroud)
现在,这首先增加j,然后将i添加到j的新值,从而导致1被警告.
通过这样做可以轻松解决这个问题
var i = 0, j = 0;
alert((i++) +j);
Run Code Online (Sandbox Code Playgroud)
现在这不容错误.
Sam*_*war 13
就个人而言,我更愿意单独陈述诸如此类的陈述i++.将它们作为较大声明的一部分包括在内可能会使那些不确定该行应该做什么的人感到困惑.
例如,而不是:
value = func(i++ * 3);
Run Code Online (Sandbox Code Playgroud)
我会这样做:
value = func(i * 3);
i++;
Run Code Online (Sandbox Code Playgroud)
这也意味着人们不必记住如何i++与++i工作,而且无需申请这么多偏好规则.
++操作员的真正问题在于它是一个具有副作用的操作员,因此它完全违背了函数式编程的原理.
实现的" 功能 "方式i++是i = i + 1明确重新分配变量而没有副作用然后使用它.
混淆的可能性是++通过添加值并将其重新分配给变量来做两件事.
| 归档时间: |
|
| 查看次数: |
50046 次 |
| 最近记录: |