[JAVASCRIPT] Alternative à eval() ?
SwordLava
2022-06-22 20:19:58
https://image.noelshack.com/fichiers/2022/25/1/1655735810-eval.png
J'ai fait une calculatrice mais à ce qu'il paraît eval() est fortement déconseillé, mais j'arrive pas à trouver d'alternative ça me rend fouhttps://image.noelshack.com/fichiers/2020/52/6/1608985783-ahi-triangle.png
Vous avez une idée ?https://image.noelshack.com/fichiers/2020/52/6/1608985783-ahi-triangle.png
Je bouclerai sur ça tant que j'aurai pas de réponses qui me conviennenthttps://image.noelshack.com/fichiers/2020/52/6/1608985783-ahi-triangle.png
Mayuri_Shiina
2022-06-22 20:20:49
Je sais pas mais je uphttps://image.noelshack.com/fichiers/2021/48/4/1638481074-1630432176-chatmirroirstretch.png
SwordLava
2022-06-22 20:21:22
Le 22 juin 2022 à 20:20:49 :
Je sais pas mais je uphttps://image.noelshack.com/fichiers/2021/48/4/1638481074-1630432176-chatmirroirstretch.png
Mercihttps://image.noelshack.com/fichiers/2020/52/6/1608985783-ahi-triangle.png
DoYouEvenRACE
2022-06-22 20:23:25
Le 22 juin 2022 à 20:19:58 :
https://image.noelshack.com/fichiers/2022/25/1/1655735810-eval.png
J'ai fait une calculatrice mais à ce qu'il paraît eval() est fortement déconseillé, mais j'arrive pas à trouver d'alternative ça me rend fouhttps://image.noelshack.com/fichiers/2020/52/6/1608985783-ahi-triangle.png
Vous avez une idée ?https://image.noelshack.com/fichiers/2020/52/6/1608985783-ahi-triangle.png
Je bouclerai sur ça tant que j'aurai pas de réponses qui me conviennenthttps://image.noelshack.com/fichiers/2020/52/6/1608985783-ahi-triangle.png
Soit tu essaies d'anticiper toutes les exploitations possibles de ton eval (bof)
Soit tu passes juste un string, que tu parses pour faire l'opération "à la main"
Avec un peu de réflexion ça doit pouvoir se faire, et tu dois avoir plein d'idées sur internet.
Je pense qu'il doit y avoir des notions de récursivité pour parser tout ça
SwordLava
2022-06-22 20:27:05
Le 22 juin 2022 à 20:23:25 :
Le 22 juin 2022 à 20:19:58 :
https://image.noelshack.com/fichiers/2022/25/1/1655735810-eval.png
J'ai fait une calculatrice mais à ce qu'il paraît eval() est fortement déconseillé, mais j'arrive pas à trouver d'alternative ça me rend fouhttps://image.noelshack.com/fichiers/2020/52/6/1608985783-ahi-triangle.png
Vous avez une idée ?https://image.noelshack.com/fichiers/2020/52/6/1608985783-ahi-triangle.png
Je bouclerai sur ça tant que j'aurai pas de réponses qui me conviennenthttps://image.noelshack.com/fichiers/2020/52/6/1608985783-ahi-triangle.png
Soit tu essaies d'anticiper toutes les exploitations possibles de ton eval (bof)
Soit tu passes juste un string, que tu parses pour faire l'opération "à la main"
Avec un peu de réflexion ça doit pouvoir se faire, et tu dois avoir plein d'idées sur internet.
Je pense qu'il doit y avoir des notions de récursivité pour parser tout ça
Le problème c'est que je suis trop con ça demande trop de réflexion, ça fait des jours que je réfléchis j'ai pas trouvé de solutionhttps://image.noelshack.com/fichiers/2020/52/6/1608985783-ahi-triangle.png
Charlies_lost
2022-06-22 20:35:51
Tu as plusieurs approches pour programmer une calculatrice.
Le problème usuel vient de la notation infixée (la notation classique avec l'opérateur entre les deux opérandes).
Dans tous les cas, il faut à un moment où l'autre construire l'AST ( https://fr.m.wikipedia.org/wiki/Arbre_de_la_syntaxe_abstraite ) de l'expression qu'on veut calculer. Une fois l'arbre construit, tu fais une évaluation récursive et c'est fini.
Donc soit tu proposes à l'utilisateur de remplir l'AST directement à travers l'interface, soit tu parses l'AST depuis la chaîne de caractères.
En ce qui concerne le parsing, il faut d'abord tokeniser la chaîne.
Ensuite, puisque tu n'utilises pas la notation Polonaise, dans quel cas c'est trivial, il faut trouver une grammaire LL1 pour notation infixée.
Une fois que tu as la grammaire LL1, tu construis l'arbre en O(n) et c'est fini.
Le problème n'est pas vraiment le JavaScript à ce moment là
CarlisteDeter
2022-07-05 15:19:36
https://image.noelshack.com/fichiers/2022/27/2/1657027151-capture-d-ecran-du-2022-07-05-15-19-04.png
Persoent ----> ENThttps://image.noelshack.com/fichiers/2021/48/7/1638744083-166298-full-removebg-preview-removebg-preview.png