Différence entre eval et parseFloat ?

way2web Messages postés 65 Date d'inscription jeudi 17 mars 2011 Statut Membre Dernière intervention 17 mars 2011 - 19 janv. 2007 à 16:03
cs_AlexN Messages postés 694 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 8 janvier 2014 - 23 janv. 2007 à 23:43
Bonjour,

Je n'ai pas très bien saisi la différence entre eval() et parseFloat() puisque tous les deux retournent la valeur numérique d'une variable non ?

Merci d'avance !!

5 réponses

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
19 janv. 2007 à 16:12
Bonjour,
    pas tout à fait....

    début de ce que je lis sur selfhtml
    ( à lire pour plus d'infos )

    eval()
Interprète un argument à transmettre et renvoie le résultat.
Si l'argument
transmis peut être interprété comme une opération de calcul, l'opération est
effectuée et son résultat est retourné...
   
    parsefloat()
Transforme la chaîne de caractères transmise en nombre et renvoie la valeur
numérique de celle-ci...


   

<hr />Cordialement Bul [mon Site] [M'écrire]<hr />
0
way2web Messages postés 65 Date d'inscription jeudi 17 mars 2011 Statut Membre Dernière intervention 17 mars 2011
20 janv. 2007 à 10:39
oui, en fait j'avais lu l'explication aussi sur le même site lol mais je ne vois pas tellement la nuance entre les 2 et quand utiliser l'un ou l'autre...
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
20 janv. 2007 à 11:19
alert(parseFloat("123.45"));
var a=10;
alert(eval("(1+10+9)/a"));
alert(eval("(a>9)"));               par exemple...
<hr />                Cordialement        Bul     [mon Site]     [M'écrire]<hr />
0
ralecul Messages postés 111 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 1 août 2008
20 janv. 2007 à 12:17
Bonjour,

Pour clarifier la situation je vais dire que javascript est un language interprété, c'est à dire que l'on peut à partir d'une chaine de caractere interpreter celle-ci et executer le code qui est contenu dans cette chaine de caractere.

Eval permet donc d'evaluer une chaine de caractere et d'executer son contenu apres interpretation...
(le contenu de cette chaine de caractere peut donc être n'importe quoi en javascript, appel de fonction, opération mathématique,...)
exemple : eval('alert(\'Hello world\')')

Alors que parseFloat lui se contente de retourner le float contenu dans la chaine de caractere...
exemple : parseFloat('42yajev')

Henri
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_AlexN Messages postés 694 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 8 janvier 2014 19
23 janv. 2007 à 23:43
parseFloat() n'a qu'une seule fonction : retourner une valeur flottante à partir de la chaine qu'on lui passe en argument.

eval() est une fonction d'analyse très puissante qui est capable de faire beaucoup de choses :
Si l'argument qu'on lui passe est
une chaine représentant une expression arithmétique, elle l'interprète, l'évalue et retourne le résultat
une chaine de code javascript, elle l'interprete, l'éxécute et retourne le résultat,
un nom d'objet du document, elle retourne une référence à cet objet,
un flux xml (venant d'un fichier par exemple), elle construit et retourne un tableau d'objets xml,
un flux json (format objet javascript), elle constuit et retourne un tableau d'objets json,
etc.

La contrepartie de la puissance de la fonction eval() est qu'elle est tellement puissante qu'elle peut permettre à un utilisateur de faire exécuter du code javascript à ton propre programme. Il est donc fortement déconseillé d'utiliser cette fonction pour interpréter du texte saisi par un utilisateur, ou alors prendre d'infinies précautions pour ne pas laisser cette fonction faire n'importe quoi. Le mieux est même d'utiliser d'autres fonctions que eval() pour analyser les saisies utilisateur (comme parseFloat(), par exemple)
0
Rejoignez-nous