recherche

Maison  >  Questions et réponses  >  le corps du texte

javascript - Pourquoi !function foo(){} renvoie-t-il false et !function foo(){}() renvoie-t-il true ?

Titre exact, merci !

女神的闺蜜爱上我女神的闺蜜爱上我2813 Il y a quelques jours807

répondre à tous(2)je répondrai

  • 淡淡烟草味

    淡淡烟草味2017-06-30 10:00:06

    Les seuls jugés faux dans

    js sont les suivants :

    • 0

    • NaN

    • faux

    • ''

    • null

    • undéfini

    Donc :

    !function foo () {} == !(function foo () {}) == false
    !function foo(){}() == !(function foo () { return undefined })() == !undefined == true

    répondre
    0
  • 高洛峰

    高洛峰2017-06-30 10:00:06

    Je pense que votre question peut être modifiée en !(function foo(){}) renvoie false, !(function foo(){})() renvoie true ?
    Parce que la fonction de code foo(){}() retournera Uncaught une fois exécuté SyntaxError : erreur de jeton inattendue.

    Le premier consiste à nier la chaîne non vide. La valeur booléenne de la chaîne non vide est vraie après la négation, elle est naturellement fausse.
    Le second consiste à nier la valeur de retour de la fonction auto-exécutable. la valeur n'est pas définie et convertie en valeur booléenne est fausse et sa négation est vraie.

    Ce qui précède sont des opinions personnelles, bienvenue pour en discuter. Merci!

    répondre
    0
  • Annulerrépondre