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 :

Conversion implicite ?


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Reconversion
    Inscrit en
    Novembre 2018
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Reconversion
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2018
    Messages : 503
    Par défaut Conversion implicite ?
    Bonjour,

    Soucis de compréhension sur un petit exercice qui demande entre autres d'interpréter des nombres dans une chaine en char codes ascii afin de récupérer les lettres correspondantes puis de les inverser, rien de méchant sauf que comme d'habitude ma solution est bcp plus lourde que la correction !
    Voici la solution proposée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    const decrypt = (str) => {
      return str.replace(/'(.+?)'/g, (_, x) => String.fromCharCode(x)).split``.reverse``.join``
    }
    decrypt(4'101''99''105''108''65' '105''72'9);
    retourne "9Hi Alice4"
    ce que je ne comprends pas c'est comment le paramètre x est converti(?) en nombre lorsque il est passé à String.fromCharCode(), de plus, je n'avais jamais vu la notation qui remplace les parenthèses sur split(), reverse() et join()...
    Merci pour votre aide

  2. #2
    Membre Expert
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 494
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 494
    Par défaut
    Citation Envoyé par olivier252 Voir le message
    je n'avais jamais vu la notation qui remplace les parenthèses sur split(), reverse() et join()...
    developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Litt%C3%A9raux_gabarits

    (sinon, les codes minifies comme ca, c'est pas mon delir...)
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

  3. #3
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    Jamais vu avant de littéraux de gabarit pour appeler une méthode (mais bof, pas intuitif du tout);

    x "est" nombre!

  4. #4
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 986
    Par défaut
    Citation Envoyé par javatwister Voir le message
    x "est" nombre!
    Que nenni, x est la chaîne du premier groupe de capture. Il y a bien conversion implicite de la part de String.fromCharCode() qui attend des nombres entiers en paramètres.

  5. #5
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    Oui mais bon, implicitement je voulais dire que c'était implicite 😊

  6. #6
    Membre éprouvé
    Homme Profil pro
    Reconversion
    Inscrit en
    Novembre 2018
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Reconversion
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2018
    Messages : 503
    Par défaut
    Hello, merci pour les réponses,

    A Doksuri, effectivement je savais que l'on pouvait utiliser les accents graves qui permettent d'interpréter les variables entre ${} afin d'éviter la concaténation mais la syntaxe sur les méthodes, je ne savais pas. Comme quoi une relecture un peu plus approfondie de la doc ne me fera pas de mal !
    Par contre y a pas une doc qui recense un peu les cas de conversion implicite ? (rien vu sur MDN ?) sinon je crois que je vais revenir tous les 2 jours lol...
    Merci à tous en tout cas, encore un sujet de bouclé

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

Discussions similaires

  1. Conversion implicite d'un type vers un autre
    Par Pragmateek dans le forum C++
    Réponses: 5
    Dernier message: 13/09/2007, 21h42
  2. conversion implicite etrange
    Par maxmarie dans le forum VB.NET
    Réponses: 4
    Dernier message: 22/06/2007, 10h48
  3. [9i]Conversion implicite ?
    Par lunab54 dans le forum SQL
    Réponses: 7
    Dernier message: 19/04/2007, 14h49
  4. [C#] Conversion implicite de type object vers int
    Par alexking2005 dans le forum C#
    Réponses: 5
    Dernier message: 02/01/2007, 10h02
  5. [jdbc][oracle] conversion implicite erronée
    Par Jack Huser dans le forum JDBC
    Réponses: 2
    Dernier message: 30/06/2005, 10h23

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