Kee*_*fer 4 javascript syntax jquery jslint
我在JS文件中遇到两个错误,都是"意外" - "." 它是用于鼠标滚轮滚动的代码(两次都是this.addEventListener( types[--i], handler, false );).我以前从未见过这种语法.它是什么,我应该如何纠正它,使JSLint更快乐?
(function($) {
var types = ['DOMMouseScroll', 'mousewheel'];
$.event.special.mousewheel = {
setup: function() {
var i;
if ( this.addEventListener ) {
i = types.length;
while ( i >= 0 ) {
this.addEventListener( types[--i], handler, false );
}
} else {
this.onmousewheel = handler;
}
},
teardown: function() {
if ( this.removeEventListener ) {
i = types.length;
while ( i >= 0 ) {
this.removeEventListener( types[--i], handler, false );
}
} else {
this.onmousewheel = null;
}
}
};
Run Code Online (Sandbox Code Playgroud)
--n语法递减变量.您可能已经看到的稍微更常见的是n++,它是相似的,但会增加变量.
的--或++之前或可变后出现,并且有细微的差别.当它出现时,它会改变该值,然后返回更改后的值.当它出现时,它返回原始值.直接使用该值时,这会产生影响.
var i;
// affix
i = 1; console.log(i++, i) // 1 2
i = 1; console.log(i--, i) // 1 0
// prefix
i = 1; console.log(++i, i) // 2 2
i = 1; console.log(--i, i) // 0 0
Run Code Online (Sandbox Code Playgroud)
请注意,在操作之后,前缀增量或减量表达式的值如何为i返回相同的值,其中词缀版本不会.
所以,长话短说,JSLint非常喜欢前缀增量运算符.但这应该是等价的:
while ( i >= 0 ) {
i -= 1;
this.removeEventListener( types[i], handler, false );
}
Run Code Online (Sandbox Code Playgroud)
通过不使用递减操作的直接结果,它不再重要,操作符的工作方式和返回的内容.它也更加明确,JSLint喜欢显式.
| 归档时间: |
|
| 查看次数: |
1977 次 |
| 最近记录: |