这听起来像一个简单的问题,但我没有运气搜索。 +d
injavascript:加变量前的符号
function addMonths(d, n, keepTime) {
if (+d) {
是什么意思?
这听起来像一个简单的问题,但我没有运气搜索。 +d
injavascript:加变量前的符号
function addMonths(d, n, keepTime) {
if (+d) {
是什么意思?
文档:https://developer.mozilla.org/en/JavaScript/Reference/Operators/Arithmetic_Operators#.2b_(Unary_Plus%29 –
)对,Paul。@amateur,详情如下:https:// developer .mozilla.org/en/JavaScript/Reference/Operators/Arithmetic_Operators#.2b_(Unary_Plus) –
任何人参加混淆JavaScript比赛? –
它是产生数字表达式的一元“+”运算符。我相信这与d*1
相同。
正如其他答案中所解释的那样,它将变量转换为数字。当d可以是一个数字或函数时,该函数的计算结果为一个数字时特别有用。
实施例(使用问题的addMonths
功能):
addMonths(function(){return x*y;}, 1, true);
addMonths(34,1,true);
addMonths("34",1,true);
则+d
将评估为在所有情况下的数字。因此,根据d
是否是可以转换为数字的数字,函数或字符串,避免需要检查类型并采用不同的代码路径。
'+ d'不会以addMonths –
的第一个调用示例为真,我不知道我在写这些时做了什么。 '+ function(){...}'会产生一个'NaN'而不是评估函数 – ecerulm
可能重复[加号在'return + new Date'中做什么](http://stackoverflow.com/questions/221539/what-does-the-plus-sign-do-in-return-新的日期) – nawfal
同样的问题,但其他页面的标题并没有描述一般情况下,因为这样做 – geotheory
可能重复[JavaScript中的'+ ...'的含义](https://stackoverflow.com/q/15129137/1048572) – Bergi