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 :

Question toute bête sur le passage de variable


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 247
    Points : 99
    Points
    99
    Par défaut Question toute bête sur le passage de variable
    Bonjour,

    J'ai créé une variable globale tableau en Javascript. Lorsque je modifie cette variable dans mes fonctions, pour que les changements soient pris en compte, dois-je préciser la vriable en paramètre de la fonction ? Et dois-je retourner le tableau par valeur de retour ?
    En gros je ne sais pas trop comment se passe le passage de variables en javascript.
    Merci

  2. #2
    CUCARACHA
    Invité(e)
    Par défaut ça dépend de la portée
    Salut,

    C'est super simple en fait.

    Javascript utilise des blocs, dès lors que tu déclare une variable dans un bloc, elle est globale pour tous les sous-bloc du bloc dans laquelle tu l'as déclarée.

    En conséquence:

    si tu déclares une variable à l'extérieur de toutes tes fonctions, c'est une variable globale

    si tu déclares une variable dans une fonction, elle ne sera accessible qu'à l'intérieur de cette fonction (pour le débogage des variables globales, il faut recopier la variable globale dans une variable locale, par exemple :
    var w = window te permet d'accéder à tout le DOM depuis le débogage de ta fonction)

    tu peux aussi déclarer des variables inline par exemple :

    for (var i=0;i<10;i++) {}

    ou

    function toto(var a,var b) {}

    dans ce cas la variable est accessible a tous les éléments compris entre les accolades du bloc.

    si tu n'utilises pas var, les débogueurs auront du mal a espionner la valeur.

    si tu ne déclare pas une variable, c'est a dire que tu utilise une variable directement dans une opération, cette dernière est automatiquement déclarée comme étant locale au bloc parent.

    pour le passage de paramètre, il faut être prudent et bien réfléchir pour éviter les écrasements de données.

    J'espère que j'ai été clair et que je ne me suis pas trompé...

    @+

    Laurent

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 247
    Points : 99
    Points
    99
    Par défaut
    ok je te remercie pour tes explications.

    Je viens de créer une fonction qui modifie un tableau déclaré en global mais pas précisé dans les paramètres de la fonction et le chgt de valeurs du tableau a bien été pris en compte dans le reste du script. Tout à fait ce que je voulais

    Merci encore

  4. #4
    CUCARACHA
    Invité(e)
    Par défaut 2 rien...
    Pense à cliquer sur résolu...

    @+

    Laurent

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 04/05/2009, 08h31
  2. question toute bete sur les variables
    Par Charlie111 dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 26/11/2008, 10h58
  3. Des questions toutes bêtes sur l'AS/400
    Par longbeach dans le forum AS/400
    Réponses: 4
    Dernier message: 31/03/2008, 22h56
  4. [PEAR] Objet : Question sur le passage de variable
    Par Norabfr dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 07/01/2006, 01h07
  5. Question toute bête sur les formulaires
    Par pekka77 dans le forum Langage
    Réponses: 5
    Dernier message: 01/12/2005, 23h45

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