Typefully

La syntaxe JS expliquée

Avatar

Share

 • 

3 years ago

 • 

View on X

La syntaxe JS est critiquée encore et encore ! Gne gne : [] == [] → false Omg : "1" == 1 → true En fait, c'est logique : car == transforme en number les 2 côtés quand les types ne sont pas pareils ! +"1" == +1 +1 == 1 1 == 1 true Je t'en explique d'autres #THREAD 👇
1 : [] est égal à ![] Un tableau est égal à un "non tableau" En fait, l'explication est simple, le == va faire ceci [] == ![] +[] == +![] 0 == +false 0 == 0 true Car quand == n'arrive pas à comparer 2 valeurs il les transforme en number Donc ici 0 == 0
2 : return statement Dans un challenge de @Neolectron, il a joué de cette subtilité ! En js un retour à la ligne ici ajoute automatiquement un ; Donc la première fonction ne return rien et la suite du code n'est jamais lue !
3. Donc null n'est pas égal à 0, ni supérieur mais il est supérieur ou égale !? 3.1 null == 0 Il ne convertit pas en number ici... Car quand un des cotés est null l'autre coté doit être null ou undefined Sinon ce serait true car +null → 0
3.2 : null > 0 Cette fois... il convertit en number xD Donc +null → 0 Mais 0 > 0 → false Donc encore une fois false !
3.3 : null >= 0 Cette fois aussi il va convertir en number ! Ensuite >= fonctionne différemment : il va prendre l'inverse de < (ex: 4 >= 5 → !(4 < 5) → !true → false) Avec notre exemple il va faire pareil !
C'est un joyeux bordel, il y a beaucoup à comprendre, si on peut le comprendre ! Entre l'algorithme de >= ou > ou == c'est pas simple !
4. split algo Ici encore un truc wtf mais logique xD Split va chercher de droite à gauche les occurrences et quand il en trouve, il va split à droite et à gauche de celle-ci Avec un "" il va directement trouver, et vu qu'à droite comme à gauche il n'y a rien ça return rien.
Mais avec une string " " ou il va rien trouver, donc tout simplement return un tableau de notre string inital
Source. Je suis tombé sur un repo très cool qui répertorie toutes les critiques et explique pourquoi ça fonctionne comme ça Je vais reprendre ces exemples et explications ici ! Retrouve toutes les bizarreries ici : github.com/denysdovhan/wtfjs
Je te conseille de lire le git que je partage ci-dessus car ça te fait réellement comprendre le langage avec pleins d'exemples et t'apprend que : 1. garde les semi-colonnes 2. utilise === Et te fait comprendre pourquoi !
Si ça t'a appris qqch RT le tweet pour me soutenir et follow @melvynxdev Si tu veux rejoindre les lynx, tu peux venir ici : melvynx.com/emails Il y a du lourd qui approche en ce retour de vacances !
Avatar

Melvyn • Builder

@melvynxdev

• Entrepreneur (+6 SaaS en 1 an) • CTO de Codeline • Formateur (+1500 devs formés)