J =“i = + i”是什么意思?

时间:2012-03-02 12:43:04

标签: javascript jquery

在jquery来源:

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

是否用于确保解析i到int?

5 个答案:

答案 0 :(得分:5)

  

是否用于确保解析i到int?

不,这是为了确保i数字floatint)。鉴于函数正在做什么,最好将i转换为非十进制值,但我不确定slice如何处理小数。

更多信息:MDN - Arithmetic Operators

答案 1 :(得分:3)

差不多,但任何号都没问题。

  

[ECMA-262: 11.4.6]:一元+运算符将其操作数转换为Number类型。

     

生产 UnaryExpression:+ UnaryExpression 评估如下:

     
      
  1. expr 成为评估UnaryExpression的结果。
  2.   
  3. 返回ToNumber(GetValue( expr ))。
  4.   

答案 2 :(得分:2)

是的,它会确保它是int(或者@Felix所说的一般数字)。试试这个代码:

var i = "2";
console.log(i === 2); // false
console.log(+i === 2); // true

答案 3 :(得分:2)

是的,将一元+应用于变量可确保如果它是其他类型(例如字符串),则会获得converted to a number(不是int,但JavaScript没有整数它在内部使用它们进行某些操作)。数字可以是小数,如果它是一个字符串,它会以通常的方式解析JavaScript解析数字(例如,+"0x10"16十进制数。)

答案 4 :(得分:0)

  

+i确保我被解析为数字。