为什么`j = + i +(i< 0?len:0)`中的前导`+`(取自jQuery源代码)

时间:2013-06-07 16:08:57

标签: javascript

我在jQuery源代码中找到了以下片段,在eq函数的定义中:

j = +i + ( i < 0 ? len : 0 )

我对+i感到惊讶。相反,我原以为:

j = i + ( i < 0 ? len : 0 )

有什么区别?领先+的效用是什么?

3 个答案:

答案 0 :(得分:43)

+i强迫号码。例如,请尝试"1" + 1+"1" + 1(前者为"11",而后者为2

答案 1 :(得分:32)

变量前面的加号会将其转换为数字。

例如:

var x = "12";
console.log(x + 3); //logs 123;
console.log(+x + 3) //logs 15;

答案 2 :(得分:5)

我认为这是一元运算符:What does the plus sign do in '+new Date'

基本上强迫它转换为数字。