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

  1. #1
    Responsable Jeux-Concours

    Avatar de vermine
    Profil pro
    Inscrit en
    mars 2008
    Messages
    6 318
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Belgique

    Informations forums :
    Inscription : mars 2008
    Messages : 6 318
    Points : 75 497
    Points
    75 497
    Par défaut [Facile][Indispensable] Exercice 1.1.1 : L'exécution d'un script JavaScript avec Node.js
    Exercice 1.1.1 : L'exécution d'un script JavaScript avec Node.js
    Apprendre le JavaScript en interagissant avec les autres membres


    Bonjour,

    Nous sommes en train de mettre en place une série d'exercices pour apprendre le JavaScript et Node.js.

    Autran et Gnuum ont rédigé ce premier exercice qui porte sur l'exécution d'un script. L'exercice est accompagné d'indications théoriques et d'une solution.

    • Objectif : Exécuter son premier script JavaScript avec Node.js.
    • Niveau : Facile
    • Exigence : Indispensable


    Exercice 1.1.1 : L'exécution d'un script JavaScript avec Node.js

    Ajoutez ici-même les problèmes que vous avez rencontrés, vos interrogations, vos remarques ou conseils.

    Découvrez également tous nos exercices JavaScript !

    Bonne chance !

  2. #2
    Membre émérite
    Homme Profil pro
    Inscrit en
    octobre 2011
    Messages
    1 990
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : octobre 2011
    Messages : 1 990
    Points : 2 524
    Points
    2 524
    Par défaut
    Salut,

    Je poste ma réponse :

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    var varBoolean0 = false ;
    var varBoolean1 = true ;
    var varUndefined = undefined ;
    var varNull = null ;
    var varNumber = 3 ;
    var varString = "Hello !"
    var varSymbol = Symbol();
     
    console.log("un booléen valant false : " + varBoolean0);
    console.log("un booléen valant true : " + varBoolean1);
    console.log("un undefined : " + varUndefined);
    console.log("un null : " + varNull);
    console.log("une string : " + varString);
    console.log("un number : " + varNumber);
    console.log("un Symbol : " + varSymbol);

    Par contre la dernière instruction ne passe pas, j'ai une erreur : Uncaught TypeError: Cannot convert a Symbol value to a string

    PS : Pour ce qui est de ce passage : "En ce qui concerne le nom des répertoires et des fichiers, il est d'usage d'utiliser des lettres minuscules et de séparer les mots par des tirets (pour Node.js).", dans le blog, "Autran" m'avait expliqué le même genre de chose mais pour le nom des variables, peut-être que ce serait bien de le rappeler pour les autres... ???

  3. #3
    Rédacteur

    Avatar de autran
    Homme Profil pro
    Développeur Java
    Inscrit en
    février 2015
    Messages
    1 215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : février 2015
    Messages : 1 215
    Points : 7 072
    Points
    7 072
    Billets dans le blog
    42
    Par défaut
    Bonjour Beginner,

    Pour le type symbol,c'est normal.
    le "compilateur" (interpréteur V8) te dit qu'il ne parvient pas à invoquer sur cette variable ce que tu appellais en Java la méthode toString() implicite
    Mais si tu remplaces la dernière instruction par console.log("un Symbol : " + typeof(varSymbol)); tu auras confirmation de la création d'une variable de type symbolOn expliquera sans doute plus tard ce concept d'enum en JavaScript

    Pour les conventions de nommage, je vais regarder. Mais il me semblait que Gnuum avait expliqué clairement les bons usages.

    Donc continue comme ça, tu es bien parti !
    Développeur Java
    Site Web

  4. #4
    Membre émérite
    Homme Profil pro
    Inscrit en
    octobre 2011
    Messages
    1 990
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : octobre 2011
    Messages : 1 990
    Points : 2 524
    Points
    2 524
    Par défaut
    Merci,

    Oui tu as raison, j'ai vu par la suite que Gnuum a donné des explications dans la solution... Je ne les avais pas vues car j'essaie dans un premier temps de faire les exercices sans regarder les solutions...

  5. #5
    Expert éminent

    Homme Profil pro
    Développeur Web
    Inscrit en
    septembre 2010
    Messages
    4 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : septembre 2010
    Messages : 4 799
    Points : 9 211
    Points
    9 211
    Par défaut
    Citation Envoyé par Beginner. Voir le message
    Je ne les avais pas vues car j'essaie dans un premier temps de faire les exercices sans regarder les solutions...
    Le deuxième temps c'est de comparer ta réponse à la solution qui contient elle-même d'autres informations, implicites ou explicites. C'est également très instructif d'essayer de bien comprendre la relation entre l'énoncé et la solution proposée, cela fait partie de l'exercice

  6. #6
    Membre émérite
    Homme Profil pro
    Inscrit en
    octobre 2011
    Messages
    1 990
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : octobre 2011
    Messages : 1 990
    Points : 2 524
    Points
    2 524
    Par défaut
    Oui tout à fait...
    Merci.

  7. #7
    Membre expérimenté
    Avatar de Gnuum
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    mars 2007
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : mars 2007
    Messages : 215
    Points : 1 711
    Points
    1 711
    Billets dans le blog
    1
    Par défaut
    Oui je vais répéter rapidement!

    Il n'est pas d'usage en JavaScript de préfixer les variables par un type, un indicateur de propriété ou tout autre préfixe en fait.
    En l'occurrence, il est inutile d'utiliser "var" en début de nom de tes variables.
    La convention usuelle pour les noms de variables en JavaScript est le lower camel case: var lowerCamelCase = true;
    L'erreur que tu as sur le console.log de ton Symbol n'est pas due au console.log mais à la concaténation que tu réalises avant en faisant "un Symbol : " + varSymbol.
    Un simple console.log(varSymbol); devrait afficher quelque chose.

    Autre remarque sur ton code Beginner.. Tu utilises plusiseurs conventions différentes en ce qui concerne tes ";":

    • var varNumber = 3 ; // point virgule avec un espace
    • var varString = "Hello !" // pas de point virgule
    • console.log("un null : " + varNull); // point virgule sans espace


    La première n'est jamais utilisée car on a tendance à éviter la verbosité (quantité de caractères) inutile alors qu'on rencontre régulièrement la deuxième et la troisième.
    La deuxième diminue encore la verbosité en se passant d'un caractère inutile mais nécessite des retours à la ligne entre chaque instruction (le ";" servant de séparateur d'instructions sur une même ligne).
    La troisième permet une plus grande liberté d'organisation et est celle que l'on rencontre le plus souvent.

    Choisis celle que tu veux mais ne change surtout pas à l'intérieur d'un même code. Je conseille, sur un projet existant, de suivre les conventions établies même si celles-ci ne sont pas celles que l'on utilise habituellement.
    Cette remarque peut te paraître anecdotique mais la rigueur et la rationalisation sont des point cruciaux de la programmation.

    A noter que var varUndefined = undefined ; peut être remplacé par var varUndefined;.

    Sinon exercice réussi! Bravo!
    {gnu: ["um", "cki"]}

  8. #8
    Membre émérite
    Homme Profil pro
    Inscrit en
    octobre 2011
    Messages
    1 990
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : octobre 2011
    Messages : 1 990
    Points : 2 524
    Points
    2 524
    Par défaut
    Merci bien !

    - Effectivement console.log(varSymbol); affiche ceci : [object Symbol] { ... }.
    -
    Citation Envoyé par Gnuum Voir le message
    noter que var varUndefined = undefined ; peut être remplacé par var varUndefined;.
    Ah cela explique ce message : It's not necessary to initialize 'varUndefined' to 'undefined'.

  9. #9
    Membre expérimenté
    Avatar de Gnuum
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    mars 2007
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : mars 2007
    Messages : 215
    Points : 1 711
    Points
    1 711
    Billets dans le blog
    1
    Par défaut
    En fait undefined, n'est pas une valeur existante, cela représente plutôt l'absence de valeur: la variable est déclarée mais pas définie, elle ne référence aucune zone mémoire.
    Contrairement à null qui est un objet stocké en mémoire et qui représente également l'absence de valeur.
    Il faut éviter de réinitialiser une variable à undefined: utiliser null à la place.

    Une astuce pour tester si une variable est null et/ou undefined (les exercices de la prochaine section aideront à mieux comprendre):
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    myVar == null // true si myVar est null ou undefined
    myVar === null // true si myVar est null, false si myVar est undefined
    myVar === undefined // false si myVar est null, true si myVar est undefined - produit une erreur si la variable n'est pas déclarée
    typeof myVar === 'undefined' //  false si myVar est null, true si myVar est undefined - ne produit pas d'erreur si la variable n'est pas déclarée
    {gnu: ["um", "cki"]}

  10. #10
    Membre émérite
    Homme Profil pro
    Inscrit en
    octobre 2011
    Messages
    1 990
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : octobre 2011
    Messages : 1 990
    Points : 2 524
    Points
    2 524
    Par défaut
    Merci pour ces précisions utiles !

Discussions similaires

  1. Réponses: 0
    Dernier message: 27/04/2012, 02h45
  2. [Système] Exécution d'un script SHELL avec PHP
    Par diabli73 dans le forum Langage
    Réponses: 5
    Dernier message: 02/10/2008, 16h07
  3. Exécution d'un script ant avec un code JAVA
    Par nibor2luxe dans le forum ANT
    Réponses: 1
    Dernier message: 23/01/2008, 14h32
  4. exécution d'un script PHP avec wget
    Par Dud225 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 28/06/2007, 16h31
  5. Exécution d'un script javascript sous IE & Mozilla
    Par komoku dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 20/12/2006, 15h53

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