goh*_*goh 237 javascript
这真的听起来像一个简单的问题,但我没有运气搜索.什么是+d中
function addMonths(d, n, keepTime) {
if (+d) {
Run Code Online (Sandbox Code Playgroud)
手段?
Pau*_*ier 271
+运算符返回对象的数字表示.因此,在您的特定情况下,它似乎是在判断d是否为非零数字.
Jso*_*owa 25
运算符+是将值转换为数字的一元运算符。下面我准备了一个表格,其中包含将此运算符用于不同值的相应结果。
+-----------------------------+-----------+
| 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 |
+-----------------------------+-----------+
Run Code Online (Sandbox Code Playgroud)
运算符+返回已实现方法的对象的值valueOf。
let something = {
valueOf: function () {
return 25;
}
};
console.log(+something);
Run Code Online (Sandbox Code Playgroud)
nai*_*sts 22
它是一个一元"+"运算符,它产生一个数值表达式.d*1我相信它会是一样的.
ece*_*ulm 11
如其他答案中所述,它将变量转换为数字.当d可以是数字或字符串时特别有用 功能 评估为数字.
示例(使用问题中的addMonths函数):
addMonths(34,1,true);
addMonths("34",1,true);
Run Code Online (Sandbox Code Playgroud)
那么+d在所有情况下,遗嘱将评估为一个数字.因此,根据是否d是可以转换为数字的数字,函数或字符串,无需检查类型并采用不同的代码路径.
| 归档时间: |
|
| 查看次数: |
70430 次 |
| 最近记录: |