javascript - Pourquoi !function foo(){} renvoie-t-il false et !function foo(){}() renvoie-t-il true ?
女神的闺蜜爱上我
女神的闺蜜爱上我 2017-06-30 09:58:06
0
2
803

Titre exact, merci !

女神的闺蜜爱上我
女神的闺蜜爱上我

répondre à tous(2)
淡淡烟草味

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
小葫芦

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!

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal