在jquery来源:
eq: function( i ) {
i = +i;
return i === -1 ?
this.slice( i ) :
this.slice( i, i + 1 );
},
是否用于确保解析i到int?
答案 0 :(得分:5)
是否用于确保解析i到int?
不,这是为了确保i
是数字(float
或int
)。鉴于函数正在做什么,最好将i
转换为非十进制值,但我不确定slice
如何处理小数。
答案 1 :(得分:3)
差不多,但任何号都没问题。
[ECMA-262: 11.4.6]:
一元+
运算符将其操作数转换为Number
类型。生产 UnaryExpression:+ UnaryExpression 评估如下:
- 让 expr 成为评估UnaryExpression的结果。
- 返回ToNumber(GetValue( expr ))。
醇>
答案 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
确保我被解析为数字。