Partage
  • Partager sur Facebook
  • Partager sur Twitter

a+=""; ou a.toString ?

Sujet résolu
    3 mars 2009 à 9:11:12

    Je comprend pas pourquoi certains font a+=""; pour transformer un chiffre en chaîne de caractère...
    encore, ça serait pour ajouter quelquechose directement... ok... mais là... autant faire .tostring... en plus niveau temps d'exécution ça doit être mieux... non?
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      3 mars 2009 à 9:23:51

      Ma question à moi c'est pouquoi on aurait besoin de transformer un nombre en chaine ?

      Mais question performance je suppose que .toString() est meilleur puisque lors d'une concatenation tu dois allouer de la mémoire quelque part. Faut remarquer que je ne sais pas comment marche .toString, mais la dernière fois qu'on a mangé un steak (saignant) ensemble elle était plutôt en forme.
      • Partager sur Facebook
      • Partager sur Twitter
        3 mars 2009 à 11:48:54

        Citation : Simon Willison


        L'ajout d'une chaîne vide à quelque chose est une manière utile de la convertir en une chaîne.



        Source : https://developer.mozilla.org/fr/Une_r [...] A0_JavaScript

        Tu devrais reconnaître ça nod_ ! ^^
        • Partager sur Facebook
        • Partager sur Twitter
          3 mars 2009 à 12:18:43

          ah... cette fois t'as réussit à copier correctement ton lien :p
          • Partager sur Facebook
          • Partager sur Twitter
            3 mars 2009 à 12:51:23

            C'est à cause des accents dans l'URL... ça passe une fois sur deux. ^^ (Et je connais pas l'encodage des caractères spéciaux dans les url...)
            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              3 mars 2009 à 13:08:15

              Citation : Golmote

              Citation : Simon Willison


              L'ajout d'une chaîne vide à quelque chose est une manière utile de la convertir en une chaîne.



              Tu devrais reconnaître ça nod_ ! ^^



              Bah oui mais ça m'empeche pas de penser que convertir un nombre en chaine… je vois pas l'utilité. sinon .toFixed() ça convertis ton nombre en chaine aussi. Il a dit «utile» pas «rapide», l'un n'empeche pas l'autre :p

              faut faire un benchmark :p
              • Partager sur Facebook
              • Partager sur Twitter
                3 mars 2009 à 13:46:16

                Je viens de faire un petit test rapide (100 mesures de 1 000 000 exécutions)
                et...
                sous firefox2.0 b=""+a; à l'air plus rapide que b=a.toString();
                ca donne une moyenne de 0,00265ms pour la 1ere et 0,00376ms pour la 2e

                Ca me surprend j'aurais pensé le contraire... (car .toString() est sensé être dédié à cela tout de même)
                • Partager sur Facebook
                • Partager sur Twitter
                  3 mars 2009 à 17:19:43

                  :waw:

                  Pour nod_: pour les test d'équivalence...
                  if(truc.toString==='machin')
                  

                  non?
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Anonyme
                    3 mars 2009 à 17:23:28

                    bah si tu teste avec === c'est que tu veux tester le type de variable en plus de sa valeur, sinon tu fais == et la conversion qui-va-bien se fait toute seule.
                    • Partager sur Facebook
                    • Partager sur Twitter
                      3 mars 2009 à 17:30:29

                      Citation : xavierm02


                      if(truc.toString()==='machin')
                      
                      • Partager sur Facebook
                      • Partager sur Twitter
                        3 mars 2009 à 17:33:06

                        moé... bah alors ils ont fait une fonction qui sert à rien...

                        Golmote:osef... je sais bien que c'est une fonction... >_<
                        • Partager sur Facebook
                        • Partager sur Twitter
                          3 mars 2009 à 17:44:31

                          Je faisais juste la remarque ! ^^

                          J'ai fait un benchmark de mon côté, et en effet il semblerait que ce soit le +"" qui gagne... (sur FF)
                          • Partager sur Facebook
                          • Partager sur Twitter
                            3 mars 2009 à 18:45:33

                            En fait je pense que .toString() sert plus à la compatibilité entre tous les objets (car Array.toString() est utile). Ainsi si on veut absolument une chaîne de caractères et qu'on ne connaît pas notre type d'origine on doit pouvoir utiliser .toString() sans trop de difficulté.

                            EDIT:
                            Ça doit être ça car:
                            alert("test".toString());
                            

                            renvoi test et non pas undefined donc String.toString() existe (et sinon expliquez-moi son utilité!)
                            • Partager sur Facebook
                            • Partager sur Twitter
                              3 mars 2009 à 20:46:17

                              et ça marche pas +="" pour un array?
                              • Partager sur Facebook
                              • Partager sur Twitter
                                3 mars 2009 à 21:45:06

                                Si. Ca fonctionne. xD
                                • Partager sur Facebook
                                • Partager sur Twitter

                                a+=""; ou a.toString ?

                                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                • Editeur
                                • Markdown