Pourquoi ne pas les opérateurs logiques (&& et ||) retourne toujours un résultat booléen?

Pourquoi ces opérateurs logiques retourne un objet et pas un booléen?

var _ = (obj.fn && obj.fn() ) || obj._ || ( obj._ = {} );

var _ = obj && obj._;

Je veux comprendre pourquoi, elle renvoie le résultat de obj.fn() (si elle est définie) OU obj._ mais pas de résultat booléen.

  • Je pense qu'il veut savoir pourquoi a || b ne pas retourner un booléen mais a ou b.
  • Ne pas var _ = obj && obj._; retourner un booléen? O. o / Alors, que fait-il de retour? La première évaluation comme faux evt. le dernier vrai si tous sont remplies?
  • ThiefMaster, c'est exactement ce que je voulais dire. J'ai mis à JOUR mon post
  • et que fait votre obj.fn() de retour et qu'est-ce que (type) obj.fn
  • La réponse ici stackoverflow.com/questions/2851404/...
  • jetez un oeil à la mise à jour
  • C'est comment && et || travail se fait en JavaScript. Ils retournent les arguments et non une valeur Booléenne. .... Pourquoi demandez-vous? Parce que Brendan Eich dit!

InformationsquelleAutor theateist | 2011-03-24