jQuery的.eq()
是:
eq: function( i ) {
return i === -1 ?
this.slice( i ) :
this.slice( i, +i + 1 );
},
+
中的第一个+i + 1
有什么意义?
答案 0 :(得分:5)
将值转换为整数并确保执行整数加法而不是字符串连接。
比较这两个例如:
var i = '1';
var result = i + 1; // result = '11';
var result2 = +i + 1; // result = 2;
为了回答这个问题为什么不用作切片方法的第一个参数,这是因为切片方法在内部执行转换。例如,以下内容将按预期工作:
var array = [1, 2, 3];
var result = array.slice('1', '2'); // result = [2];
答案 1 :(得分:2)
一元+
运算符将操作数强制转换为Number类型。我们的想法是修复字符串值,例如'1'
,'2'
,'3'
等。
答案 2 :(得分:1)
确保将i
视为数字,而不是字符串。
如果3
被视为字符串,则3 + 1
将为31
。