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 :

Identifiants dans un objet littéral


Sujet :

JavaScript

  1. #1
    Invité
    Invité(e)
    Par défaut Identifiants dans un objet littéral
    Bonjour à tous et à toutes !

    Précisons que suis débutant en JavaScript, une amie m'a demandé de l'aider hier pour un projet de lycée à rendre demain...
    L'exercice est en somme est assez simple mais il me manque quelques bases. J'ai lu presque tout le tutoriel/cours durant la nuit et j'ai feuilleté une partie de la documentation de developpez.net sans y trouver
    mon bonheur. La fonction de recherche n'a pas pu me satisfaire non plus

    En effet j'aurais voulu savoir quelles pouvaient être les formes des identifiants dans un objet littéral. Désolé si je n'emploie
    pas les bons termes, c'est la nomenclature ; en python on aurait appelé ça un dictionnaire il me semble.

    Voici un exemple probablement plus compréhensible :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var objet;
    objet = {
        item1 : "prop1";
        item2 : "prop2";
        }
    J'aurais voulu savoir si ces "clés" ou "identifiants", qui sont dans ce cas item1 et item2, pouvaient contenir des espaces, des
    apostrophes, des caractères accentués ou bien encore des caractères non latins (cyrillique, grec, arabe, arménien, japonais...).
    Aussi dans le cas de ces caractères spéciaux, dois-je utiliser directement de code html qui correspond à chaque caractère ou bien
    JavaScript fait seul une conversion ? Et une dernière petite question : les "clés" que j'ai nommées itemX peuvent elles être remplacées
    par des chaines de caractères pour palier au problème des espaces ?

    Merci par avance !
    Avec mes sincères salutation. -Jean
    Dernière modification par Invité ; 22/05/2014 à 08h19.

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Techniquement, on peut mettre n'importe quelle chaine pour un nom de propriété, mais certains cas posent problème, en particulier les espaces et les signes "-", "+", etc.
    Un espace sera considéré comme une suite d'instructions, un - comme une soustraction, donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var objet = {
      foo bar: 'Pas bon',
      foo-bar: 'Pas bon'
    };
    en revanche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var objet = {
      'foo bar': 'Bon',
      'foo-bar': 'Bon'
    };
    De même pour accéder à cette propriété
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    objet.foo bar; // Pas bon
    objet.foo-bar; // Pas bon
    objet['foo bar']; // Bon
    objet['foo-bar']; // Bon
    Pour les autres caractères, il n'y a pas de restriction particulière, mais les bonnes pratiques préconisent toutefois de se limiter aux caractères alphanumériques (lettre non accentuées et chiffres) avec l'underscore ("_") et "$" en plus car il n'y a à priori aucune raison d'avoir besoin des autres caractères.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par défaut
    Les noms de propriétés valides sont les mêmes que les noms de variable valides, et JavaScript va assez loin dans l'Unicode pour ça.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var ಠ_ಠ = "wtf javascript";
    var ლಠ益ಠლ = "come on !";
    (ಠ_ಠ) + ლಠ益ಠლ <3

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Les noms de propriétés valides sont les mêmes que les noms de variable valides
    Pas tout à fait Sylvain.
    Si tu reprends mes exemples, tu ne peux pas avoir de nom de variable avec des espaces par exemple alors que c'est tout à fait valide pour un nom de propriété.
    Pour un nom de propriété, toute chaine de caractère est valide.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par défaut
    Oui, je voulais parler de la plage de caractères Unicode autorisés. Ce ne sont pas TOUS les caractères, mais presque. Il y a tout le détail ici : http://mathiasbynens.be/notes/javascript-identifiers

  6. #6
    Invité
    Invité(e)
    Par défaut
    Merci beaucoup pour vos réponses !
    S'il est déconseillé d'utiliser des caractères spéciaux, je vais me débrouiller
    avec le parcours de deux tableaux en parallèle alors. C'est plus long à écrire
    mais le résultat sera le même

    Merci encore !


    Je passe le sujet en résolu !

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 11/01/2010, 18h13
  2. Réponses: 2
    Dernier message: 04/03/2009, 10h32
  3. Réponses: 3
    Dernier message: 26/10/2004, 07h31
  4. Réponses: 3
    Dernier message: 05/05/2004, 00h39
  5. TWebBrowser créé dans un objet.
    Par Speed41 dans le forum Composants VCL
    Réponses: 3
    Dernier message: 03/11/2003, 10h34

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