179 votes

En javascript, une chaîne vide est-elle toujours fausse comme un booléen?

en javascript,

 var a = '';
var b = (a) ? false : true;   // fixed!
 

var b sera réglé sur true .

S'agit-il d'un comportement défini sur lequel on peut compter?

257voto

Arenielle Points 578

Oui. Javascript est un dialecte d'ECMAScript, et la spécification du langage ECMAScript définit clairement ce comportement:

ToBoolean

Le résultat est faux si l'argument est la chaîne vide (sa longueur est égale à zéro); sinon le résultat est vrai

Citation extraite de http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf

67voto

Hossein Points 2286

Oui. Tous false , 0 , des chaînes vides '' et "" , NaN , undefined et null sont toujours évalués comme false ; tout le reste est true .

Et dans votre exemple, b est false après évaluation. (Je pense que vous avez écrit à tort true )

9voto

Jonathon Bolster Points 8663

var b sera réglé sur false . En effet, une chaîne vide compte comme une valeur "falsey" en JavaScript, à l'instar d'autres valeurs.

Veuillez consulter http://www.sitepoint.com/javascript-truthy-falsy/ pour connaître les valeurs fausses

5voto

Marcel Jackwerth Points 20632

Des exemples d'expressions pouvant être converties en false sont celles évaluées à null, à 0, à la chaîne vide ("") ou indéfinie. (voir référence MDN )

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X