变量前加号的作用是什么?


Answers:


312

+运算符返回该对象的数字表示。因此,在您的特定情况下,它似乎是在确定是否d为非零数字。

参考这里。而且,正如评论中指出的,这里




我只是想知道哪种方法更有效,使用函数parseInt或使用plus运算符将字符串解析为整数?
acarlstein '18

1
.parseInt()有何不同?
Daniel W.

1
来自MDN链接的@acarlstein回答:“尽管一元否定(-)也可以转换非数字,但一元加号是将某物转换为数字的最快且首选的方式,因为它不会对该数字执行任何其他运算”。(只是一个“官方”的答案)
AN

22

它是一元运算符“ +”,它产生一个数字表达式。d*1我相信这将与相同。


12

如其他答案所述,它将变量转换为数字。当d可以是数字或字符串时特别有用 功能 得出一个数字。

示例(使用问题中的addMonths函数):

addMonths(34,1,true);
addMonths("34",1,true);

那么+d在所有情况下都会得出一个数字。因此,无需检查类型并根据是否d可以转换为数字的数字,函数或字符串采用不同的代码路径。


+d将不会使用addMonths的第一个调用示例求值为一个数字
Gus Crawford

是的,我不知道我写这本书时做了什么。+function(){...}将产生一个NaN不求值的函数
RubenLaguna 17-10-17

4
您可以编辑答案以消除疯狂吗?这很令人困惑。
Buh Buh
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.