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 :

Assignation d'une variable


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Homme Profil pro
    �tudiant
    Inscrit en
    Novembre 2015
    Messages
    83
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 83
    Par d�faut Assignation d'une variable
    Bonjour � tous,
    Dans le code suivant je ne comprends pas pourquoi les variables p et tab ont la m�me valeur alors que j'ai d�clar� p = tab avant de tri� tab.
    J'ai d�clarer p en const mais la fonction sort() agit sur mes 2 variables.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    var tab = ['salut', 'arabe', 'banane', 'croissant', 'pain'];
    console.log('non trie : '+tab); //non trie : salut,arabe,banane,croissant,pain
    const p = tab;
    tab.sort();
    console.log('trie : '+tab); //trie : arabe,banane,croissant,pain,salut
    console.log('p = '+p); //p = arabe,banane,croissant,pain,salut
    Merci pour votre aide et bonne journ�e.

  2. #2
    Membre confirm�
    Homme Profil pro
    �tudiant
    Inscrit en
    Novembre 2015
    Messages
    83
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 83
    Par d�faut
    J'ai poser la question sur le t'chat et j'ai eu la r�ponse de @Mermich que je poste ici si quelqu'un rencontre le m�me probl�me.

    15:51 [mermich]: Spixz> La d�claration const permet de cr�er une constante nomm�e accessible uniquement en lecture. Cela ne signifie pas que la valeur contenue est immuable, uniquement que l'identifiant ne peut pas �tre r�affect�.
    15:52 [mermich]: dans to code tu cree une copie du pointeur vers ton array, pas une copie de l'array...
    15:52 [mermich]: docn lorsque tu modifie le contenu du premier tu modifies aussi celui du second
    15:52 [mermich]: pour eviter ca, il faut faire une copie du contenu de ton array.

  3. #3
    Expert confirm�
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 100
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activit� : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 100
    Par d�faut
    Pour compl�ter la r�ponse de mermich :

    Tu peux faire une copie de tab en �crivant tab.slice().

    Si tu veux que p soit totalement immuable, tu peux le � geler � en appelant Object.freeze :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    const p = Object.freeze(tab.slice());
    Toute tentative ult�rieure de modification des �l�ments de p r�sultera, selon le mode (strict ou non strict), en pas d�effet, ou bien en une exception TypeError.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    // mode non strict
    p[0] = "orange";
    console.log(p[0]); // "salut"
     
    // mode strict
    (() => {
      "use strict";
      p[0] = "orange"; // TypeError: 0 is read-only
      console.log(p[0]); // n’est jamais exécuté
    })();
    De la m�me mani�re, tu ne peux pas ajouter ou retirer des �l�ments du tableau, car cela modifierait implicitement sa propri�t� length, et c�est impossible car le tableau a �t� gel�.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    // dans les deux modes
    p.push("abricot"); // TypeError: can't define array index property past the end of an array with non-writable length
    La FAQ JavaScript � Les cours JavaScript
    Touche F12 = la console → l�outil indispensable pour d�velopper en JavaScript !

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 4
    Dernier message: 04/02/2010, 14h44
  2. [POO] Probl�me lors de l'appel d'une propri�t� d'un objet.
    Par akecoocoo dans le forum G�n�ral JavaScript
    R�ponses: 3
    Dernier message: 24/08/2005, 08h51
  3. Probl�me lors d'un Update sur une date
    Par Nany dans le forum ASP
    R�ponses: 3
    Dernier message: 19/05/2004, 22h37
  4. R�ponses: 2
    Dernier message: 14/05/2004, 14h32

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