1
votes

Pourquoi est-ce que j'obtiens une erreur indéfinie lors de l'appel d'une fonction sans paramètre?

Je ne trouve pas l'erreur, qu'est-ce que je fais de mal? Cela doit être une raison stupide et très simple ...

Lorsque vous appelez cette fonction sans paramètre, l'année en cours doit être utilisée dans le code suivant mais j'obtiens une erreur "non définie"

function get_ostersonntag(year){
    if ((year == "") || (year == null)){
        year= new Date();
        year = year.getFullYear;

    }

    console.log(year)
  }


6 commentaires

parce que year est passé avec la valeur undefined et donc il ne rentre pas dans la condition if ?


mais même lorsque j'édite la fonction avec la valeur par défaut de l'année, la même erreur se produit? function blaala (année = null) {etc.


Eh bien, vous manquez la parenthèse dans getFullYear ();


Quelle est l'erreur? Cela fonctionne pour moi (la valeur de year devient undefined , mais undefined == null est true , donc le si l'instruction est passée). Il enregistre une valeur de fonction pour moi, car year.getFullYear est une fonction - vous vouliez probablement dire year = year.getFullYear ()


Merci @LGSon! C'était le problème. Comme mentionné ... raison stupide et très facile :)


désolé @LGSon, j'avais manqué votre commentaire d'une manière ou d'une autre, et je viens de publier le mien (avec le même contenu) comme réponse: /


6 Réponses :



-1
votes

vous pouvez essayer

function get_ostersonntag(year){
    if (!year){
        year= new Date();
        year = year.getFullYear;

    }

    console.log(year)
  }


0 commentaires

-1
votes

Mettez à jour votre condition if:

function get_ostersonntag(year){
    if (!year) {
        year= new Date();
        year = year.getFullYear();
    }

    console.log(year)
  }

chaque fois que l'année a une valeur erronée (non définie, nulle ou ''), elle ira dans la boucle if.


0 commentaires

1
votes

Votre fonction fonctionne correctement - lorsque vous l'appelez sans argument, l'argument year est implicitement affecté à la valeur undefined . Et undefined == null est vrai, donc le bloc if est exécuté.

Ce que je soupçonne de vous dérouter est que vous avez renvoyé year.getFullYear , qui est une valeur de fonction. Je pense que vous voulez en fait appeler cette fonction pour obtenir le résultat:

function get_ostersonntag(year){
    if ((year == "") || (year == null)){
        year= new Date();
        year = year.getFullYear();

    }

    console.log(year)
  }

get_ostersonntag()


0 commentaires

0
votes

Merci à tous. La raison était les crochets manquants après .getFullYear


0 commentaires

0
votes

La seule chose que vous avez manquée sont les parenthèses après year = year.getFullYear

function get_ostersonntag(year){
    if ((year == "") || (year == null)){
        year= new Date();
        year = year.getFullYear();
    }
    console.log(year)
}


0 commentaires