什么是的最佳实践呢?
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];
}
}
}
发布于 2010-06-09 12:42:39
长期以来的最佳实践是:遵循jslint的建议,改用i += 1
。
至于为什么它比++
更好,根据克罗克福德的说法:
增量++
和减量--
操作符使得以极其简洁的风格编写代码成为可能。在像C这样的语言中,他们使得编写一行代码成为可能:for (p = src, q = dest; !*p; p++, q++) *q = *p;
大多数产生可怕安全漏洞的缓冲区溢出错误都是由于下面这样的代码造成的。在我自己的实践中,我观察到当我使用++
和--
__时,我的代码往往太紧凑、太棘手、太神秘。所以,作为一个纪律问题,我不再使用它们了。
编辑:包含了来自Nope的评论,因为这个答案继续获得评论。请继续为他的评论投赞成票:)
发布于 2012-09-18 19:17:59
只需在javascript文件前面添加/*jslint plusplus: true */
即可。
发布于 2010-06-09 02:54:11
为了避免混淆,以及在使用小型符时可能出现的问题,当与相同的(+或-)一起使用时,请始终使用括号将运算符及其操作数括起来。
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);
现在,这不可能是错误的。
https://stackoverflow.com/questions/3000276
复制相似问题