什么是“;i=+i”;意思在Javascript中

What does "i = +i" mean in Javascript?

本文关键字:意思 Javascript 什么      更新时间:2023-09-26

在jquery中来源:

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

它是否用于确保将i解析为int?

它是否用于确保将i解析为int?

否,这是为了确保i数字floatint)。考虑到函数的作用,最好将i转换为非十进制值,但我不确定slice是如何处理小数的。

更多信息:MDN - Arithmetic Operators

差不多,但任何数字都可以。

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

生产UnaryExpression:+UnaryExpressions的评估如下:

  1. expr是对UnaryExpression求值的结果
  2. 返回ToNumber(GetValue(expr))

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

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

是的,将一元+应用于变量可以确保如果它是其他类型(例如字符串),它会被转换为数字(不是int,JavaScript没有int,尽管它在内部使用它们进行某些操作)。数字可以是小数,如果是字符串,则按照JavaScript解析数字的通常方式进行解析(例如,+"0x10"16十进制)。

+i确保i被解析为一个数字。