Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Atteint de JavaScriptite Aiguë [Cyril Durand]

Expert ASP.net Ajax et WCF, Cyril Durand parle dans son blog de point techniques sur ASP.net, ASP.net Ajax, JavaScript, WCF et .net en général. Cyril est également consultant indépendant, n'hésitez pas à le contacter pour de l'assistance sur vos projets

Actualités

  • Blog de Cyril DURAND, passionné de JavaScript, Ajax, ASP.net et tout ce qui touche au developpement Web Client-Side.

    Consultant freelance, n'hésitez pas à me contacter pour vos projets .net : architecture, accompagnement, formation, ...

    View Cyril Durand's profile on LinkedIn
    hit counters

L'instruction !! en JavaScript

En JavaScript tout peut être évalué comme étant un Boolean. Voici les valeurs qui retournent false :

var falses = [ false, undefined, // valeur retourné lorsqu'on tente d'accéder à  une variable/propriété inexistante null, 0, '' ]; for(var i = 0, l = falses.length; i < l; i++){ if (falses[ i ]){ Sys.Debug.trace('je suis jamais affiché' + i); } }

Tous le reste retourne true y compris 'false', '0'.

L'instruction !! (double négation) nous permet donc d'obtenir rapidement un boolean à partir de n'importe quelle valeur qui retourne vrai. J'utilise cette astuce pour m'assurer que l'on m'envoie bien un boolean.

setValue : function(value){ /// <value type="Boolean"></value> this._value = !!value; // équivalent de this._value = value ? true : false; // ou encore de if (value) this._value = true; else this._value = false; }

Si l'on veut savoir si value est bien un type boolean alors on utilisera l'opérateur === (strict equality operator) ou alors l'instruction typeof.

var falses = [ false, undefined, // valeur retourné lorsqu'on tente d'accéder à une variable/propriété inexistante null, 0, '' ]; for(var i = 0, l = falses.length; i < l; i++){ if(falses[ i ] === false){ // if (typeof(falses[ i ]) == 'boolean' && !falses[ i ]){ Sys.Debug.trace('j\'affiche seulement le premier false'); } }

Attention cependant à la méthode valueOf de Object qui permet d'avoir des choses surprenantes :

var o = { valueOf : function(){return false;} }; if (o == false) Sys.Debug.trace('je suis affiché"'); if (o === false) Sys.Debug.trace('je ne suis pas affiché'); if (!o) Sys.Debug.trace('je ne suis pas affiché');
Posted: dimanche 27 janvier 2008 21:27 par cyril
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :

Commentaires

FREMYCOMPANY a dit :

Marrant valueOf, je ne connaissait pas Wink

# janvier 28, 2008 20:33

cyril a dit :

j'ai essayé de chercher les specs de valueOf mais les specs EcmaScript disent juste que ca retourne this pour un objet (en gros)

Mais d'après ce que j'ai compris, si on fait une comparaison entre un objet et une valeur de type native, alors on compare la valeur de object.valueOf() avec la valeur de type natif. Mais si on compare 2 objects entre eux alors on compare pas les valueOf(). Je n'ai pas encore compris l'utilité de cette méthode là.

# janvier 28, 2008 21:06

coucou747 a dit :

c'est marrant, plus je te lis, plus je confirme le fait d'avoir ajoute ton blog en signet RSS :)

# janvier 29, 2008 16:10
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- SQL Server 2008 : Un livre en cours de préparation ! par SQL Server vu par Christian Robert le il y a 3 heures et 44 minutes

- IIS7 : à quel pool d'application correspond le processus w3wp.exe par Atteint de JavaScriptite Aiguë [Cyril Durand] le il y a 4 heures et 41 minutes

- PDC 2008 - J-14 ! par Nix's Blog le il y a 6 heures et 26 minutes

- [Silverlight] La version finale de Silverlight 2 sera disponible en téléchargement demain ! par Thomas Lebrun le il y a 8 heures et 19 minutes

- SharePoint 2007 : Professional Developers Conference 2008 par Philippe Sentenac [MVP SharePoint] le il y a 14 heures et 12 minutes

- [Silverlight] En attendant Silverlight 2 RTW par Blog Technique d'Audrey PETIT le 10-11-2008, 21:55

- Le nouveau Gojira, c’est pour lundi… par CoqBlog le 10-11-2008, 01:18

- SharePoint : nouvel article sur la mise en place des Scopes dans MOSS Searchs par Blog Technique de Romelard Fabrice le 10-10-2008, 17:52

- Hello CS par Le Blog de julz le 10-10-2008, 12:26

- MSDN/TechNet/Microsoft Days Tour 2008 à Lille les 13 et 14 Octobre ! par RedoBlog - The .NET Gentleman !!! le 10-10-2008, 09:35