【问题标题】: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 )

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

【问题讨论】:

标签: javascript


【解决方案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'

基本上强制转换为数字。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-11
    • 2023-03-17
    • 2019-03-11
    • 1970-01-01
    • 2016-03-18
    • 2015-12-21
    相关资源
    最近更新 更多