IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Portée des variables et cout


Sujet :

JavaScript

  1. #1
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    J'aimerais savoir lequel de ces deux bouts de code est le plus optimisé et pourquoi.
    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    //1 Variable globales
    var date = null;
    var name = null;
    while (blabla)
    {
       date = getDate();
       name = getName();
       if (name != "")
          Process(dat, name);
    }
    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    //2 variables locales
    while (blabla)
    {
       var date = getDate();
       var name = getName();
       if (name != "")
          Process(dat, name);
    }

    Je viens également de me rendre compte que la version 1 ne marche pas. Pourquoi ?
    TypeError: object is not a function
    Merci.
    Dernière modification par Bovino ; 08/08/2013 à 09h53.

  2. #2
    Membre émérite
    Avatar de Kaamo
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Points : 2 778
    Points
    2 778
    Par défaut
    Une bonne pratique est de déclarer ses variables au début du contexte, donc en dehors de la boucle.

    Une autre bonne pratique est d'éviter les variables globales, en faisant par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    (function(app){
    // ton code ici
    var date, nom;
     
    // faire des trucs
    date = new Date();
    nom = 'toto titi';
     
    // attacher à cet objet tout ce qu'on souhaite utiliser ailleurs
    app.nom = nom;
    app.date = date;
     
    })(window.app = window.app || {});
     
    console.log(app); // Object {nom: "toto titi", date: Thu Aug 08 2013 09:54:28 GMT+0200 (Paris, Madrid (heure d’été))}
    Ainsi, dans l'objet global window, tu n'auras que la variable app. date et nom n'y figurant pas et ne polluant pas l'espace.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 17/02/2005, 09h05
  2. [FLASH MX] Portée des variables ???
    Par mic79 dans le forum Flash
    Réponses: 2
    Dernier message: 08/02/2005, 10h21
  3. Portée des variables vbscript vers ASP
    Par Immobilis dans le forum ASP
    Réponses: 3
    Dernier message: 03/11/2004, 10h14
  4. [XSL]Problème de portée des variables
    Par djulesp dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 17/09/2004, 10h34
  5. [Portée] portée des variables
    Par parksto dans le forum Langage
    Réponses: 7
    Dernier message: 09/05/2004, 21h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo