Appuyez sur Entrée pour voir vos résultats ou Echap pour annuler.

Ouate de phoque JavaScript?!

On a tous, à un moment ou un autre, pensé une gros « wtf » en apprenant un nouveau langage. Puisqu’il y en a plusieurs populaires de nos jours, on peut se dire avec confiance qu’ils ont tous des petites subtilités qui font qu’un est meilleur dans certaines circonstances… mais aussi, qui font que certaines personnes les haïssent! Je vous invite donc dans cette nouvelle série d’articles qui traite des « wtf » des langages et techno, en commençant par votre préféré : JavaScript.

Paramètre avec valeur par défaut

Traditionnellement, pour créer un paramètre avec une valeur par défaut, on utilisait un vieux truc que vous avez probablement déjà vu quelque part :

Mais il y a de la sorcellerie derrière cette ligne. Puisqu’il y a un ||, l’expression sera traitée comme une expression booléenne. Vous savez que JavaScript a un concept de « truthy/falsy », alors une valeur quelconque sera traitée comme true et param gardera sa valeur. Si c’est null ou undefined, alors l’expression sera false et la deuxième condition est évaluée qui, elle, est « truthy » (chaîne de charactères). param prendra donc cette valeur.

Donc… à proscrire!

Convertir une date en ms depuis l’Epoch Unix

Toujours dans l’optique de contribuer au fait que beaucoup de devz haïssent JavaScript, il est possible de sauver quelques frappes au clavier pour convertir une date en sa représentation en ms depuis l’Epoch Unix (depuis jeudi le premier janvier 1970 à minuit). Cette représentation permet notamment de faire des calculs de différence entre des dates :

Avec +, JS interprète ça comme undefined + new Date(), puis comprend qu’il doit convertir la date en nombre pour pouvoir faire le calcul. Poof, on a son timestamp.

Mais jusque là, c’est pas trop pire…

Après, imaginez comparer deux différences ensembles le temps que je ramasse les bouts de cerveau.

S’assurer que la string est un nombre

Le truc ci-dessus fonctionne aussi avec les chaînes de caractères. Admettons que vous récupérez la valeur d’un champs texte, il sera forcément en string :

Donc si vous le voulez en nombre :

Tout briser et ne rien comprendre

Bon… le titre est pas si clair, mais restons dans cette sorcellerie qu’est de préfixer une variable avec + pour la convertir. Qu’est-ce qui arrive, considérant que JavaScript a un typage dynamique, si la variable n’est pas du bon type? Par exemple, un tableau vide…

Hummmm….

Okay… un dernier pour la route, connu par plusieurs j’en suis sûr :

Mind === Blown!

Conclusion

Voilà pour ce premier article sur les « wtf » des langages! J’en ai oublié sur JS? Dis-les moi en commentaire. Écrivez-moi aussi des suggestions pour d’autres langages 🙂 J’ai déjà des bonnes idées pour la suite, mais j’aimerais avoir vos suggestions.

Merci de nous lire et de partager nos articles à chaque semaine 🙂 vous êtes notre gaz!

 

Suivez-nous par courriel!

Saisissez votre adresse courriel pour vous abonner au blog d'Ezo et recevoir une notification de chaque nouvel article par email.