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

Sha*_*awn 32 javascript

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

j = +i + ( i < 0 ? len : 0 )
Run Code Online (Sandbox Code Playgroud)

我很惊讶+i.相反,我原以为:

j = i + ( i < 0 ? len : 0 )
Run Code Online (Sandbox Code Playgroud)

有什么不同?领导的效用是什么+

She*_*tJS 43

+i强迫数字.作为一个例子,尝试"1" + 1+"1" + 1(前者是"11"后者2)

  • 扎实,易于理解的解释.+1 (3认同)

tym*_*eJV 33

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

例如:

var x = "12";
console.log(x + 3); //logs 123;
console.log(+x + 3) //logs 15;
Run Code Online (Sandbox Code Playgroud)

  • 原因编号NaN不使用动态类型语言 (10认同)
  • 有赞成和反对.只是了解差异,不会有0个理由. (2认同)

Jos*_*h P 5

我认为这是一元运算符: '+ new Date'中加号的作用是什么

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