理解jQuery的.eq()

时间:2011-10-29 13:07:24

标签: javascript jquery

jQuery的.eq()是:

eq: function( i ) {
    return i === -1 ?
        this.slice( i ) :
        this.slice( i, +i + 1 );
},

+中的第一个+i + 1有什么意义?

3 个答案:

答案 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

相关问题