这听起来像一个简单的问题,但我没有运气搜索。
中的+d
是什么
function addMonths(d, n, keepTime) {
if (+d) {
装置?
答案 0 :(得分:234)
答案 1 :(得分:19)
它是一个一元“+”运算符,它产生一个数值表达式。我相信它会与d*1
相同。
答案 2 :(得分:10)
如其他答案所述,它将变量转换为数字。当d可以是数字或字符串 函数 评估为数字时特别有用。
示例(使用问题中的addMonths
函数):
addMonths(34,1,true);
addMonths("34",1,true);
然后+d
将在所有情况下评估为数字。因此,无需检查类型并采用不同的代码路径,具体取决于d
是否为可以转换为数字的数字,函数或字符串。
答案 3 :(得分:3)
运算符+
是将值转换为数字的一元运算符。下面,我准备了一张表格,其中包含针对不同的值使用此运算符的相应结果。
+-----------------------------+-----------+
| Value | + (Value) |
+-----------------------------+-----------+
| 1 | 1 |
| '-1' | -1 |
| '3.14' | 3.14 |
| '3' | 3 |
| '0xAA' | 170 |
| true | 1 |
| false | 0 |
| null | 0 |
| 'Infinity' | Infinity |
| 'infinity' | NaN |
| '10a' | NaN |
| undefined | Nan |
| ['Apple'] | Nan |
| function(val){ return val } | NaN |
+-----------------------------+-----------+
运算符+
返回已实现方法valueOf
的对象的值。
let something = {
valueOf: function () {
return 25;
}
};
console.log(+something);