Et vos 2 exemples de code montrent que vous auriez dû utiliser cette dépendance car vous avez faux tout les deux.
let x = "a"
console.log((x & 1) == 0) // true ? WTF ?
console.log((x%2) == 0) // false
console.log((x%2) == 1) // false ? WTF?
Pour tester une valeur, dans un langage non typé, il faut s'assurer du type, sinon les règles d'autoconversion des types vont vous manger les doigts. En gros, il faut tester si le paramètre est un nombre (ou convertible vers un nombre), via isNaN(x) ou autre et agir en conséquence. Donc la bonne réponse devrait plutôt être const isEven = x => typeof(x) == "number" ? ((+x&1)==0) : false
En gros, vos réponses démontrent clairement que le point d'une des premières réponses à l'article est vrai, à vouloir faire sans dépendances, on reproduit les bugs que les dépendances, plus testées, ont déjà corrigés.
[^] # Re: Un peu de nuance
Posté par xryl669 . En réponse au journal Mon inquiétude sur les dépendances en Rust. Évalué à 4.
Et vos 2 exemples de code montrent que vous auriez dû utiliser cette dépendance car vous avez faux tout les deux.
Pour tester une valeur, dans un langage non typé, il faut s'assurer du type, sinon les règles d'autoconversion des types vont vous manger les doigts. En gros, il faut tester si le paramètre est un nombre (ou convertible vers un nombre), via
isNaN(x)ou autre et agir en conséquence. Donc la bonne réponse devrait plutôt êtreconst isEven = x => typeof(x) == "number" ? ((+x&1)==0) : falseEn gros, vos réponses démontrent clairement que le point d'une des premières réponses à l'article est vrai, à vouloir faire sans dépendances, on reproduit les bugs que les dépendances, plus testées, ont déjà corrigés.