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!
Les seuls jugés faux dans
js sont les suivants :
0
NaN
faux
''
null
undéfini
Donc :
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!