为啥 `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 )
我对@987654325@ 感到惊讶。相反,我会期望:
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值的代码,求解析为啥结果那么抽象
这段代码里的Object类型为啥能被强制转换为Comparable接口类型呢?