为啥 `j = +i + ( i < 0 ? len : 0 )` 中的前导 `+` (取自 jQuery 源代码)[重复]

Posted

技术标签:

【中文标题】为啥 `j = +i + ( i < 0 ? len : 0 )` 中的前导 `+` (取自 jQuery 源代码)[重复]【英文标题】:Why the leading `+` in `j = +i + ( i < 0 ? len : 0 )` (taken from jQuery source code) [duplicate]为什么 `j = +i + ( i < 0 ? len : 0 )` 中的前导 `+` (取自 jQuery 源代码)[重复] 【发布时间】:2013-06-04 00:30:29 【问题描述】:

我在jQuery源码中找到了如下sn-p,在eq函数的定义中:

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

我对@9​​87654325@ 感到惊讶。相反,我会期望:

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

有什么区别?领先的+ 有什么用处?

【问题讨论】:

转换为数字。 哦...我以前用0+x...看来+x就够了:) What does = +_ mean in javascript 和Whats the significant use of Unary Plus and Minus operators? 的可能副本 @anishsane:+x 不仅足够,而且事实上,0+x 通常不会起作用,因为+ 可以执行字符串连接以及加法。例如,0+'30''030'0+'0[object Object]' 【参考方案1】:

+i 强制转换为数字。例如,尝试"1" + 1+"1" + 1(前者为"11",后者为2

【讨论】:

扎实、通俗易懂的解释。 +1【参考方案2】:

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

例如:

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

【讨论】:

不使用动态类型语言的原因编号 NaN 有优劣之分。只要了解差异,就会有 0 个理由不这样做。 啊,JavaScript 的乐趣,任何错字在语法上都是正确的【参考方案3】:

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

基本上强制转换为数字。

【讨论】:

以上是关于为啥 `j = +i + ( i < 0 ? len : 0 )` 中的前导 `+` (取自 jQuery 源代码)[重复]的主要内容,如果未能解决你的问题,请参考以下文章

下面是我自己简简单单写的求next值的代码,求解析为啥结果那么抽象

C语言运行程序显示为啥有乱码?

以下程序为啥会提示: 无法打开包括文件:“stdlib”

这段代码里的Object类型为啥能被强制转换为Comparable接口类型呢?

生成4个随机的不同的数字。JAVA语言。 为啥会产生重复的数字?

为啥查询sql数据库后在页面没有数据显示,用的是html表来显示