Créer un parser en Javascript

Le problème exposé dans ce sujet a été résolu.

Tout dépend de comment tu souhaites programmer. C’est vrai que si on utilise principalement l’aspect fonctionnel du langage (qui d’après ton avatar semble être ton cas), on a moyen d’éviter relativement facilement les let mais sinon, on se retrouvera toujours avec des boucles qui modifient un résultat ou autre. Et dire "il ne faut jamais utiliser de let", c’est contre productif et c’est nier tout un aspect du langage.

Je suis d’accord avec toi mais le problème est que les let sont assez mal utilisé et ajoute beaucoup d’effets de bord ( exemple bcp de code avec des variables global qui sont modifié de partout.. )

Il peut les utiliser mais de la bonne manière ;)

Absolute

Les effets de bord, c’est aussi le principe de beaucoup de paradigme de programmation non fonctionnel, donc on va dire que ça va dans le bon sens pour ça. Tout dépend de ce que tu fais après.

C’est pas un vrai débat, à mon avis. Utiliser const n’évite pas les effets de bord, utiliser const au lieu de let ne change rien à la portée des variables et n’a donc pas d’influence sur l’utilisation de variables globales. Si on veut éviter les effets de bord en JS faut utiliser des libs du genre immutable, const n’aide pas des masses.

Au final c’est simple, utilisez const partout et let que quand c’est nécessaire, comme ça a été dit. Même si on évite autant que faire se peut l’utilisation de for, quand un for est adapté on a bien besoin de let, y’a pas vraiment de mal à ça. (Petit bémol au message de tleb puisque c’est le sujet : dans un for le let n’est pas nécessaire pour modifier le résultat, il l’est pour l’itérateur : for (let o of foo()), for (let i = 0; i < ….)

Notez que c’est un sujet de discussion qui revient souvent, la dernière fois que je l’ai vu passer c’était ici : https://zestedesavoir.com/forums/sujet/10626/code-javascript-ne-fonctionne-pas/?page=2#p178805

+1 -0

Un petit conseil :

En JS ont recommandent fortement de ne pas utiliser de let mais d’utiliser que des const ;)

Absolute

x’D Pour ma défense, c’est la seule partie du code que j’ai piqué à l’OP, moi j’ai utilisé que des const comme mon prof de JS m’a toujours dis. :-° 1

Mais en vrai, à part match qui pouvait être const et l’itérator qui pouvait être défini uniquement dans la boucle (mais pas const). J’ai rien à dire sur ce code perso.

PS: Sinon, je crois que :

for( const i of array ) 

est autorisé en JS, du coup j’aurais pu faire un hack du style :

for( const i of [...Array(numToken).keys()] )

Mais franchement c’est plus claire avec une boucle.


  1. Comment ça balance sur ZdS !

+0 -0

Allez voir sur mdn si vous êtes pas au clair sur la différence.

(@tleb : un array-like object est un object, comme environ tout en JS. Ici, tes 0 1 2 3 sont des strings, les propriétés de l’objet. Si tu peux itérer sur les propriétés d’un objet, tu peux itérer sur les propriétés d’un array puisque c’est un objet. ;) )

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte