Cela ressemble vraiment à une question simple mais je n’ai pas eu de chance de chercher. qu’est-ce que le +d
function addMonths(d, n, keepTime) { if (+d) {
veux dire?
L’opérateur + renvoie la représentation numérique de l’object. Donc, dans votre cas particulier, il semblerait que le fait de savoir si d est un nombre différent de zéro semble prédire.
Référence ici . Et, comme indiqué dans les commentaires, ici .
C’est un opérateur unaire “+” qui produit une expression numérique. Ce serait la même chose que d*1
, je crois.
Comme expliqué dans d’autres réponses, il convertit la variable en un nombre. Particulièrement utile lorsque d peut être un nombre ou une fonction évaluant un nombre.
Exemple (en utilisant la fonction addMonths
dans la question):
addMonths(function(){return x*y;}, 1, true); addMonths(34,1,true); addMonths("34",1,true);
alors le +d
évaluera à un nombre dans tous les cas. Ainsi, il n’est plus nécessaire de rechercher le type et de prendre des chemins de code différents selon que d
est un nombre, une fonction ou une chaîne pouvant être convertie en un nombre.