Ce langage me donne envie de vomir ! - Histoire de Javascript

แชร์
ฝัง
  • เผยแพร่เมื่อ 12 ก.ย. 2024
  • Formations: cours.cocadmin...
    Newsletter: cours.cocadmin...
    Rejoignez le discord: / discord
    Twitter: / cocadmin
    Instagram: / cocadmin

ความคิดเห็น • 410

  • @cocadmin
    @cocadmin  2 ปีที่แล้ว +48

    Pour ceux que ca interessent je vais poster d'autres exemples bizarre avec leurs explications dans ma newletter : mailchi.mp/280eeb9f0080/cocadmin

    • @hegelmotokoua
      @hegelmotokoua 2 ปีที่แล้ว +5

      J'aime beaucoup ta manière d'expliquer correctement les choses.

    • @xxx.xxx.xxx.xx1joker706
      @xxx.xxx.xxx.xx1joker706 2 ปีที่แล้ว

      Il y a l'histoire de Python aussi. Tout ce merdier pour finalement faire le language le plus bâtard du monde, venant du monde de Linux. Ils sont forts ces anti-Microsoft dans la connerie.

    • @briepeterson9718
      @briepeterson9718 2 ปีที่แล้ว

      tu n as pas dit combien aol a racheté netscape...j me dmande si cetait bien moins que billou ne proposait qq annees plus tot. 😅😅

    • @SuperTitank
      @SuperTitank 2 ปีที่แล้ว

      Hello, je viens de découvrir ta chaîne; J'aime beaucoup le style et le thème ! Clair, pas de fioriture, pas de comédie > abonné :)

    • @davidef.982
      @davidef.982 3 หลายเดือนก่อน

      404 - page not found 😢

  • @evancastel1021
    @evancastel1021 2 ปีที่แล้ว +98

    Il n'existe aucune façon de représenter les chiffres à virgule en machine de façon exacte. 0,1 + 0,2 donne 0,300....4 dans tous les langages. Du moins ceux répondant à la norme IEEE 754 de représentation des nombres à virgules en machine, nombres appelés flottants. Cette norme s'appuie sur l'écriture scientifique du nombre en base 2.
    Il faut se rappeler que le fait qu'un nombre aie une infinité de chiffres dépend de la base. Par exemple "un tiers " a une infinité de 3 après la virgule en base 10 : 0,333333.... En base 3 c'est simplement 0,1. De même 'un dixième' s'écrit simplement 0,1 en base 10 mais 0.0001100110011001100... avec 1100 qui se répète, en base 2. Pour stocker un nombre sur 32 ou 64 bits l'ordi est donc obligé de stocker des valeurs approchées . Puis la conversion en base 10 pour écriture à l'écran ne tombe plus juste. Voici d'autres résultats surprenants :
    (a + b) + c n'est pas toujours égal à a + ( b + c)
    a * (b + c) n'est pas toujours égal à a * b + a * c
    (log(a**n) / log(a)) n'est pas toujours égal à n

    • @issamelsayd
      @issamelsayd 2 ปีที่แล้ว +2

      Merci pour ton commentaire édifiant

    • @DoubleCiao
      @DoubleCiao 2 ปีที่แล้ว +3

      Bon complément à la vidéo , merci.

    • @mrkanata7696
      @mrkanata7696 2 ปีที่แล้ว +4

      Exactement, même en Java tu obtiens la même chose, pour le coup, l'exemple dans la vidéo n' est pas significatif. Par contre additionner des number avec des strings, c'est une autre histoire 😁

    • @guillaumerosmorduc4611
      @guillaumerosmorduc4611 2 ปีที่แล้ว +1

      Merci pour ton commentaire. Très bon complément à la vidéo en effet.

    • @FerasOfficiel
      @FerasOfficiel ปีที่แล้ว

      Exact, j'ajouterai qu'il existe des langages pour le calcul formel qui permettent de palier à toutes les erreurs d'approximations/représentations qui s'accumulent dans les programmes écrits dans les majorité des langages. Par exemple Geogebra utilise giac/xcas pour éviter ces problèmes et bien d'autres. Giac, le moteur de calcul formel (qui donne bien "true" à 0.1 + 0.2 == 0.3) a été créé en parti dans le cadre d'un projet universitaire grenoblois

  • @GaetanLeGac
    @GaetanLeGac 2 ปีที่แล้ว +186

    * 3 > 2 > 1
    Pas certain, mais 3 > 2 est d'abord interprété, ce qui donne true
    Puis true > 1 = false parce que true équivaut à 1
    * [] = []
    Les tableaux sont considérés comme des objets en JS
    Et chaque objet étant unique, chaque tableau l'est aussi
    Mis à part ces bizarreries, avec suffisemment de recul j'aime bien ce langage
    Belle syntaxe, évolution régulière des standards, facilement modulable & extensible, full stack, prototypage rapide, pour les prijets sérieux y'a Typescript

    • @murphyromain3915
      @murphyromain3915 2 ปีที่แล้ว +6

      Je me disais bien que y'avais une logique derrière ça, merci pour cette précision

    • @luffystars3841
      @luffystars3841 2 ปีที่แล้ว +13

      Il n'y a rien de bizarre... il suffit de savoir que c'est un langage a typage dynamique... 10 + "1" donne 101 car le 10 de type Number est dynamiquement changer en type string... et le + en javascript entre deux chaînes de caractères sert à la concaténation tout simplement.... donc bizarre oui si on utilise pas l'outil pour ce qu'il est ....utilisez un tournevis pour enfoncer des clous et dites que ce marteau est bizarre.....

    • @baratexor7459
      @baratexor7459 2 ปีที่แล้ว

      merci ! j'ai été provoqué par ce titre et cette miniature car je trouve le js super, que ce soit en web client ou même avec node.

    • @baratexor7459
      @baratexor7459 2 ปีที่แล้ว

      @@luffystars3841 tout ce qu'il a montré me paraît plutôt logique, et même plus qu'en java:
      > "string" == "string" //false
      et au final au vu de la base du language, c'est plutôt logique

    • @Feyli
      @Feyli 2 ปีที่แล้ว +2

      Après vérification, ta théorie sur les comparaisons est complètement vraie puisque 3>2==0 donne false et 3>2==1 donne true, le booléen étant fondé sur true et false, mais aussi sur 1 et 0

  • @PaulTheEldritchCat
    @PaulTheEldritchCat 2 ปีที่แล้ว +68

    Sympa cette histoire ! Alors il y a bien un lien entre Java et JavaScript, c'est juste un lien historique et pas un lien logiciel :) On en apprend tous les jours ! Merci.

    • @TheAcidPrank
      @TheAcidPrank 2 ปีที่แล้ว

      ce que je trouve marrant c'est que Lars Bak s'est barré quand Sun micro system a été racheté par Oracle. C'est marrant si on connait l'histoire qu'il y a eu avec MySQL et MariaDB lorsqu'Oracle a pointé le bout de son nez. Décidément, y'a des développeurs qui n'aiment pas du tout travailler pour Oracle. Je me demande bien pourquoi ^^

  • @t1rke
    @t1rke 2 ปีที่แล้ว +11

    Mais tu vises juste des cotes nuls pr dire que c'est un language bizzare genre ? 123 == '123' tu peux juste faire === ca va renvoyer faux, pour un array vide t'as pas besoin de mettre [] == [] tu peux juste faire [].length === 0 parce que sinon c'est quoi l'utilite de [] == [] et pr la virgule flottante c'est pas a cause de javascript c'est a cause de la facon dont le pc calcule ya ca sur python et dautre language aussi et il y'a toujours de la vix avec une fonction maths basique et pr le 3>2>1 c'est parce que 3>2 ca renvoie true ducoup ca devient true>1 ce qui est faux tu peux juste mettre 3>2 && 2>1... il y'a pratiquement solution pour tous, faut juste respecter la syntaxe et le fonctionnement du language

    • @Farah28100
      @Farah28100 หลายเดือนก่อน +2

      C'est globalement des moyens de contournements bateaux face a des vrais problèmes cachés dans JavaScript à cause de son développement foireux

  • @inazumaeleven9102
    @inazumaeleven9102 2 ปีที่แล้ว +34

    J'adore les histoires de technos raconté par toi, ce format est génial man 👍

  • @aurelienllorca
    @aurelienllorca 2 ปีที่แล้ว +73

    0.1 + 0.2 renvoie ça pour beaucoup de langage ^^ Dès qu'on stocke les nombres en virgules flottantes on doit faire des approximations

    • @Manon-4096
      @Manon-4096 2 ปีที่แล้ว +2

      genre en python

    • @aurelienllorca
      @aurelienllorca 2 ปีที่แล้ว +3

      @@Manon-4096 Dans des centaines de langages mais oui ;)

    • @MegaBaye
      @MegaBaye 2 ปีที่แล้ว

      la reponse de python ma surppris 0.1+0.2 = 0.30000000000000004
      !! pourtant un vrai langage de calcul scientifique...!!! Guindo nous dois des explication aussi

    • @bilalemohmadian8611
      @bilalemohmadian8611 2 ปีที่แล้ว

      @@Manon-4096 Ouais mais ils ont créer une bibliothèque nommée "Decimal" avec la classe Decimal pour mettre en base 10 directement pour éviter cette erreur :p

    • @Manon-4096
      @Manon-4096 2 ปีที่แล้ว +3

      @@MegaBaye la faute au calcul en virgule flottante. plus rapide que si on devait faire un type décimal basé sur l'arithmétique en base 10.

  • @Syroco18
    @Syroco18 2 ปีที่แล้ว +5

    Franchement mec n'hésite pas à étoffer tes vidéos, aller dans le technique etc c'est trop intéressant. La j'ai l'impression que tu limites pour des vidéos grand publique mais ces sujets méritent tellement plus.
    Gg quand même t'es un vrai crac comme on en fait plus.

    • @GamingDesCavernes
      @GamingDesCavernes 2 ปีที่แล้ว +3

      Faire une chaîne réellement technique, c'est l'assurance de ne pas avoir de vue...

  • @primfxdesign
    @primfxdesign 2 ปีที่แล้ว +8

    Excellente cette vidéo !
    Intéressant aussi de mentionner l'ECMA, puisque quelques années après avoir été développé (un peu à la va vite), JavaScript avait quand même été standardisé, donnant naissance à ECMAScript (si j'ai bien suivi)
    Et pour les personnes qui confondent Java et JavaScript, n'oubliez pas que "Java is to JavaScript what Car is to Carpet" 😉

  • @ChristopheCasalegno
    @ChristopheCasalegno 2 ปีที่แล้ว +21

    Petit rappel utile pour la fin de l'histoire : c'est suite à la libération du code de Netscape qu'est né Mozilla qui deviendra plus tard Mozilla Firefox. Enjoy!

    • @Galileo51Galilei
      @Galileo51Galilei ปีที่แล้ว +1

      En effet,et c'est un gros deal, c'est le projet qui va porter l'open source avec GNU/Linux. Heureusement que Netscape a fini par ouvrir ses sources, sans cela Microsoft aurait bouffé le web et mis sous clefs ses standards

  • @ta9sas
    @ta9sas 2 ปีที่แล้ว +6

    sinon t'a essayer de faire 0.1 + 0.2 sur d'autres langages de programmation?

  • @azertty3302
    @azertty3302 2 ปีที่แล้ว +57

    Cette vidéo est incroyable, pour un passionner de programmation comme moi c’est du pur plaisir chaque seconde ta vidéo !

    • @maesmm
      @maesmm 2 ปีที่แล้ว +5

      Ce que cet homme dit est faux, le JS est un langage digne des dieux. N'écoutez pas les sataniques qui tentent de le discréditer

    • @thebattinson1278
      @thebattinson1278 ปีที่แล้ว

      @@maesmm Inventé par Dieu lui même.

  • @MrgnUTube
    @MrgnUTube 2 ปีที่แล้ว +8

    Super intéressant comme d'habitude mais très court, j'espère que tu approfondiras!
    Javascript a eu plusieurs vies, celle que tu as présenté qui introduit l'ère des incompatibilités entre les navigateurs, l'ère JQuery qui a permis de compenser ça... à sa manière, l'ère post ES6 qui a ouvert la porte à de gros projets grâce à l'arrivée des classes... Et depuis, NodeJS, le Typescript et tout ce qui permet aujourd'hui de faire du Fullstack uniforme et solide basé sur JS).
    Vidéo excellente par le contenu, l'humour et le montage, merci :)

    • @sam0621
      @sam0621 2 ปีที่แล้ว

      Il n'y a pas réellement de classe en JS, c'est juste un raccourci pour faire la même chose qu'avant.

  • @ence7846
    @ence7846 2 ปีที่แล้ว +5

    Énorme malaise ce titre et les premières secondes. On sent bien le mec qui n'a d'expérience qu'avec très peu de langages. Absolument tous les points énoncés sont logiques et faut vraiment faire aucun effort pour ne pas les comprendre. Je crois que le pire de tous c'est quand tu parles de 0.1 + 0.2 != 0.3, c'est à se demander si t'as déjà utilisé des flottants une fois dans ta vie.
    Enfin de toute façon vu le titre j'imagine que le but de cette vidéo c'est juste de faire des clics avec du "sensationnel" auprès de débiles.

  • @shunji3641
    @shunji3641 2 หลายเดือนก่อน +1

    La comparaison des 2 tableaux vides qui donnent false, c'est parce que tu compares 2 objets, et dans javascript les arrays sont des objets.
    Or, également les objets sont stockés (et donc également comparé) par référence dans la stack (plutôt heap, les objets sont stockés dans la heap en JS, la stack ne stock que la référence à l'adresse dans la heap), et vu qu'ils ont 2 références différentes car grossomodo tu déclares 2 tableaux différents, ils ne sont pas égaux pour JS.
    Il y a d'autres techniques pour comparer des tableaux en JS (notamment en détournant un peu via JSON.stringify..)
    J'ai remarqué seulement à la fin en écrivant que la vidéo date d'il y a 2 ans, mais maintenant que j'ai écrit ça, je vais quand même poster :D !

  • @ggousier
    @ggousier 2 ปีที่แล้ว +1

    Le Js est certainement le langage de haut niveau le plus permissif qui existe. Possibilité de faire des opérations entre integer et string sans déclencher une erreur. Possibilité d'appeler une fonction sans l'avoir déclarée au préalable, le fameux hoisting. :) Netscape mon premier navigateur. Tu me rajeunis pas. Il y a 25 ans, je n'aurai pas misé un bouton de culotte sur le JS ^^. Aujourd'hui avec l'explosion du web, et surtout de Google c'est devenu un incontournable. Ceci dit il a sacrément évolué ^^.
    PS : dans ton titre une petite coquille. Langage s'écrit sans le "u" en bon françois :) . Sinon comme d'hab, gg à toi.

  • @iancdp9
    @iancdp9 2 ปีที่แล้ว

    C'était vachement sympa ! Des petites histoires comme ça liées à l'IT ça fait toujours plaisir :D Hâte d'en voir d'autres

  • @KaSSa__
    @KaSSa__ 2 ปีที่แล้ว +7

    Heureusement, en 2022, on a TypeScript 😍

    • @yayel59
      @yayel59 2 ปีที่แล้ว +2

      Enfin un truc pas trop mal de Microsoft, justement.

  • @vinception777
    @vinception777 2 ปีที่แล้ว

    Hey ça fait un moment que j'étais pas passé, c'est vraiment stylé comme vidéo, j'aime beaucoup le rythme et le format, il y a pleins d'infos sans ce que soit trop dur à encaisser!
    Tu t'es grave fait à TH-cam c'est cool haha :)

  • @HellolifeH
    @HellolifeH ปีที่แล้ว

    J'adore ta façon de raconter des histoires. C'est très intéressant et j'ai appris plein de choses. Le montage est top. Continue comme ça !

  • @leshommesdupilly
    @leshommesdupilly 2 ปีที่แล้ว +1

    C++: "Tu sais, interrompre le programme en cas d'erreurs, c'est bien"
    JS: "NOOOONNNN !!!"

  • @Le_Grand_Rigatoni
    @Le_Grand_Rigatoni 2 ปีที่แล้ว +3

    0:25 Alors ça, c'est simplement parce qu'aucun de ces nombres en binaire ne sont finis (0.1=0.0001100110011... et 0.2=0.001100110011...), donc pour pouvoir les stocker, il faut le faire sous forme d'arrondis. Et forcement, après, quand on fait des calculs avec, il y a des erreurs. Beaucoup de langages on ce problème.

  • @Tigrou7777
    @Tigrou7777 ปีที่แล้ว +1

    Beaucoup de comportements bizarres en JS viennent du fait qu'il n'est pas typé, et donc quand on fait des comparaisons entre données de types différents (ex : float vs string) le language fait des conversion à sa sauce, ce qui donne parfois des résultats bizarres.

  • @cool.guy.
    @cool.guy. 2 ปีที่แล้ว +3

    roh mais javascript c un langage fun, il a du charme, une vrai personalité
    pas comme C++ que personne n'invite au soirée

  • @SteamDeckGameplay
    @SteamDeckGameplay 2 ปีที่แล้ว +10

    Les exemples que tu donnes, c'est juste parce que tu connais pas le langage, que tu comprends pas et que tu penses que c'est de la merde.
    10 - '1' ça fait un cast implicite, donc ça fait 9.
    10 + '1' par contre tu utilises l'opérateur de concaténation, donc ça cast 10 en string implicitement aussi.
    3 > 2 > 1 c'est l'ordre d'interprétation, ce genre de code tu devrais jamais le faire en fait
    [] == [] tu compares pas les valeurs, mais les instances qui sont pas les même, c'est comme si tu faisais new Object() == new Object(), c'est deux instances différentes
    0.1 + 0.2 c'est la gestion des chiffres à virgule, qui est pareil dans plein de langages mais qu'on te cache souvent mais c'est inhérent à la manière dont sont stockés les float

    • @evds3941
      @evds3941 2 ปีที่แล้ว

      " 10 - '1' ça fait un cast implicite, donc ça fait 9. " c'est pas censé faire de cast de 1 , même si c'est effectivement le cas .
      "10 + '1' par contre tu utilises l'opérateur de concaténation, donc ça cast 10 en string implicitement aussi." c'est quand même illogique.
      pour le reste je suis d'accord

    • @the_csb
      @the_csb 2 ปีที่แล้ว

      Evan, l'opérateur "-" est un opérateur arithmétique seulement donc les caste se feront toujours vers des nombre

    • @evds3941
      @evds3941 2 ปีที่แล้ว

      @@the_csb Oui cela est évident , dans ce cas je vois pas pourquoi JS s'autorise à le faire

  • @baptiste_parmantier
    @baptiste_parmantier 2 ปีที่แล้ว +27

    C'est impressionnant la quantité de bêtises racontées en seulement 30 secondes (sans parler du reste).
    0:07 : Tu demande une addition entre un nombre et un string, le langage étant en incapacité de le faire, il strigify les deux partis et les assemble avec un comportement tout à fait logique.
    0:12 : On voit tout de suite que tu ne sais pas utiliser un opérateur Javascript correctement.
    0:18 : Tu compares 2 objets qui POUR TOI sont identiques sauf que d'un point de vue machine, tu as 2 instance d'un Objet (ici un tableau) vide donc ayant 2 instances différentes, il te renvoie false.
    0:26 : Tu connais les arrondis ? Tu sais, le fameux 1/3 qui vaut 3.3333333333....................................................4 ?
    0:29 : "Et ce ne sont que 2 exemple parmi tannnnnnnt d'autres" : Tu es là pour assassiner un langage ou pour raconter l'histoire de celui-ci ?
    3:10 On ne "programme pas un navigateur" : Ça ne veut juste rien dire.
    • Toutes tes "petites anecdotes" (à 6:14 par exemple) sur le créateur de Javascript me font bien rire dans la mesure où elles ne relèvent que et uniquement de ton interprétation, à moins peut-être que tu as rencontré son créateur et que tu le côtoyais en 1995 !
    6:30 A quel moment tu peux affirmer que ce langage, aussi minimaliste pouvait-il être à sa création, ai été créé en 10 jours ? Je suis en train de créer avec un ami un langage de programmation, nous avons commencé il y a 2 mois et il n'arrive toujours pas à la cheville de la première version du Javascript. Non pas parce qu'on n'avance pas mais uniquement parce que cela relève d'une complexité de compréhension juste... énorme. A noter que les ressources dont nous disposons aujourd'hui n'existaient pas en 1995 donc chapeau au créateur pour ce qu'il a créé.
    Tu ne peux pas affirmer qu'il a été créé et 10 jours et lui cracher dessus 3 secondes plus tard en citant tous les problèmes liés à la sécurité.
    D'autant plus que la notion de sécurité dans le web a énormément évolué et que les besoins de l'époque n'ont absolument rien à voir avec ceux de 1995.
    7:50 (à peut prêt) tu dis que même il n'y a pas si longtemps, il était compliqué d'avoir une bonne compatibilité entre les navigateurs : c'est effectivement vrai.
    Sauf que tu balance cette information juste après avoir mis en avant que le problème lié à la compatibilité avait pour cause : 2 langage différents.
    Ça fait extrêmement longtemps que le problème ne vient plus de ces deux langage puisque l'un a totalement été dégagé au profit de l'autre.
    Ici encore une fois, ton script est très mal agencé, mal organisé.. A moins que ta volonté de guillotiner le Javascript est réelle...
    Ce qui est amusant d'ailleurs c'est que tu ne montre quasiment aucun code en Javascript dans ta vidéo de fond... (au mieux on a vu du WebAssembler.. mais qui n'est toujours pas du Javascript..)
    Tout le discours que tu emplois est orienté pour dévaloriser, dénigrer le Javascript. Ce langage qui est omniprésent sur tous les supports, desktop, mobile, web, micro-logiciels embarqués (et j'en passe).
    Qui es-tu pour affirmer que le Javascript "est un langage claqué au sol" ? Es-tu son créateur ?
    Ta vidéo est mal montée, son storytelling aurait pu être sympa si tu ne racontais pas autant de bêtises à la minute.
    Dès le début, tu assassine le langage en citant des exemples qui POUR TOI ne sont pas logiques, TOI qui est un SYSTADMIN et non un DEVELOPPEUR.
    Ta vidéo est orientée, sans aucune impartialité, (presque) sans aucune recherche.
    Elle est décevante en comparaison de ton contenu habituel.
    Et c'est vraiment dommage parce que le concept, celui de raconter des histoires autours des langages est très intéressante.. s'il n'y avait pas cette orientation malsaine.

    • @nathaelbonnal8898
      @nathaelbonnal8898 2 ปีที่แล้ว +4

      Je reconnais, il l'aurait eu 2/20 à l'exam Web de ma promo x)

    • @yassinedamiri1063
      @yassinedamiri1063 2 ปีที่แล้ว

      Force a toi pour ton complio 😂. La THL (Théorie des Langages) qui revient en force tout un coup...

    • @Laiteux
      @Laiteux 2 ปีที่แล้ว +5

      rah ouais ta meuf t'a quitté ou quoi?

    • @baptiste_parmantier
      @baptiste_parmantier 2 ปีที่แล้ว

      @@yassinedamiri1063 en soit la compréhension des étapes est assez logique mais la mise en place, c’est autre chose 😅

    • @toubippc
      @toubippc 2 ปีที่แล้ว +1

      Wahh, je viens de perdre 5 min a lire un commentaire qui éclate un gars qui met a disposition une video gratuite et dont le titre est explicite !
      Alors j'en prend 5, juste pour te dire d'aller ... essayer d'autres languages pour comprendre le sens de la video.
      Et les exemples cités ne sont pas faux... juste illogique de certains points de vue.
      Si il «strignifie» dans un sens pourquoi pas dans l'autre ?
      Un tableau = objet JS = instances ... sans rien demandé .. normal ?
      Tu sais ce que c'est un tableau en C ?
      Les perfs, la sécurité, compatibilité, .. sont toujours des problèmes actuels..
      Faut avouer JS veut tout faire a ta place mais si tu ne connais pas le comportements de son «runtime» c'est très abstraits et illogique !
      C'était juste pour faire un commentaire de plus pour cette excellente video. 😂

  • @Akhulud
    @Akhulud 2 ปีที่แล้ว +2

    Pour le coût 0.1+0.2 ça fait 0.300000...0004 sur quasi tout les languages

  • @ANGENOIRLDDO
    @ANGENOIRLDDO 2 ปีที่แล้ว

    ça fait un an exactement que je fais du NodeJs / Javascript pour mon entreprise et du coup vidéo très intéressante du point de vue historique. J'avais fait beaucoup de C avant du coup les bizarreries j'en ai vu assez peu. Il faut juste penser à bien cast les variables dans le type souhaité quand on est pas sur plutôt que de tout laisser en automatique et avoir des surprises plus tard. (ou faire du typescript ça marche aussi)
    La gestion d'erreur via try catch est du coup un point essentiel dans le langage ça permet de gérer les bizarreries sans faire crash le programme.
    Le garbage collector existe maintenant, une fois qu'une variable n'a plus de référence ou qu'on sort du scope actuel la mémoire est libérée.
    Le language est très plaisant à utiliser (on fait beaucoups en codant peu) et surtout très facile à prendre en main pour des débutants, le plus important étant de ne pas coder en mode YOLO car le language est assez permissif.

    • @ANGENOIRLDDO
      @ANGENOIRLDDO 2 ปีที่แล้ว

      et l'ES6 dispo depuis 2015 un pur plaisir

  • @cobaltdupont2537
    @cobaltdupont2537 2 ปีที่แล้ว +2

    Juste pour le [] == [] c est parce que javascript ne regarde pas le contenus des tableaux, chaque tableaux js a une addresse memoire qui correspond a l endroit ou il est stocké sur l ordinateur.
    Js compare ensuite si le tableau1 EST le tableau2, or les deux contienne les memes choses, mais ne sobt pas la meme entitée
    Exemple plus simple, si j ai deux sacs remplis de 3 oranges, je ne peux pas dire que ce sont les memes sacs, ce sont deux sacs differents qui contiennent les memes chose

  • @jonathankabaso8237
    @jonathankabaso8237 2 ปีที่แล้ว +3

    Quelle belle histoire 😄 en tant que développeur on dirait qu'on passe une bonne soirée je dirais

  • @RoiDrag0n
    @RoiDrag0n 2 ปีที่แล้ว +2

    C'est sans compter les développeurs extrêmement talentueux qui font de JS un langage qui est maintenant sur tous les fronts et dans toutes les stacks

  • @pazka
    @pazka 2 ปีที่แล้ว

    Très intéressant, je m'était déjà renseigné un peu sur l'histoire de JS et j'ai bien aimé ta description ! Comme un pote qui te file ça entre deux anecdotes :)
    Un point d'amélioration selon moi : Les cuts en plein milieu des phrases m'ont pas mal écorché l'oreille niveau auditif ça m'a un peu gâché le plaisir d'écouter l'histoire. Plutôt essayer de refaire toute la phrase que de la couper / remonté ce qui casse ton flow de parole ( qui est cool pourtant ! )
    Bonne continuation !

  • @MrNiuxe
    @MrNiuxe 2 ปีที่แล้ว +1

    En ce qui concerne [] == [] => false, c'est normal. new Array() != new Array() parce que tu crées 2 instances (donc 2 adresses mémoires différentes ==> références différentes) ! Pour les autres bizarreries, ouais le JS est un langage à typage faible...... Mélanger les légumes et le dessert, ça ne peut que donner un plat inconsistant ;) Si le langage était mieux élaboré, il devrait remonter une exception !

  • @testostador5450
    @testostador5450 2 ปีที่แล้ว

    Yo ! Super vidéo ! Quel certification d’après toi tu recommande de passer en ce moment chef ?

  • @matmat6888
    @matmat6888 2 ปีที่แล้ว +4

    Bah quitte à être à contre courant, j'ai passé des bons moments avec javascript (sous angular 1/nodejs sur des grosses applications web) et justement son coté non typé. Ca m'a rarement fait défaut. Pour moi les langages objets sont fait pour prendre par la main et rassurer le développeur mais rallonge le temps de développement.

    • @qzerqzefr2860
      @qzerqzefr2860 2 ปีที่แล้ว +2

      le problème de l'objet c'"est que beaucoup ne savent pas l'utilisé et font n'importe quoi (sur-heritage par exemple, une vrai catastrophe)

  • @YannAriell
    @YannAriell 2 ปีที่แล้ว +1

    Ce format de vidéos est juste génial , est ce qu'il y aura d'autres ?

    • @cocadmin
      @cocadmin  2 ปีที่แล้ว

      si la vidéo marche bien oui :)

  • @obsasew972
    @obsasew972 2 ปีที่แล้ว

    Magnifique , je visionnais la video sur ma télé je suis allé sur mon téléphone juste pour liker et commenter, tes vidéos sont tjr aussi passionnantes et cool a regarder ! Keep it up 👍🏽

  • @Zaphispo
    @Zaphispo 2 ปีที่แล้ว +1

    Techniquement 0.30000000000000004 c'est égale 0.3 avec la double precision.

  • @_misterwhy
    @_misterwhy 2 ปีที่แล้ว +4

    Raconte nous comment créer un langage coca ! ^^
    Petite pépite cette chaîne !

    • @cocadmin
      @cocadmin  2 ปีที่แล้ว +1

      c'est une bonne idée de video haha

    • @_misterwhy
      @_misterwhy 2 ปีที่แล้ว

      @@cocadmin Bon après on sait que le titre sera : j'ai créé un langage de programmation ... pour miner des bitcoins :D

  • @citoyennumero4434
    @citoyennumero4434 ปีที่แล้ว +1

    J'ai fais un mois de Javascript, mais venant du C/C++, j'ai eu envie de m'émasculer avec les dents dés les premières lignes de code !! Je suis heureux de ne plus avoir besoin d'utiliser celui-ci, mais ceux qui utilisent ce langage, ont tout mon respect

    • @pandojotv1440
      @pandojotv1440 3 หลายเดือนก่อน

      Après le langage a énormément évolué depuis l'ES6 et aussi avec l'arriver de Typescript

  • @gigazman
    @gigazman 2 ปีที่แล้ว

    Excellente histoire! C’est cool de connaitre ce genre de chose!
    Mais du coup quelle est la version de javascript aujourd’hui?
    Il y a-t-il toujours une différence entre jscript et javascript? Qu’il y a-t-il dans edge, firefox ou chrome? Cela mériterai un autre episode :)

    • @cocadmin
      @cocadmin  2 ปีที่แล้ว +1

      jscript n'existe plus. la derniere version de javascript s'apelle ecmascript 2022 mais tout le monde dit javascript :)

  • @abdelbakibendahou6833
    @abdelbakibendahou6833 ปีที่แล้ว

    T as un site de tous les logiciels super a la mode en société de codage ?

  • @PierreMiniggio
    @PierreMiniggio 2 ปีที่แล้ว +6

    J’adore ta manière de raconter notre histoire! GG

    • @Acti1337x
      @Acti1337x 2 ปีที่แล้ว +1

      un bot a copié ton com

    • @PierreMiniggio
      @PierreMiniggio 2 ปีที่แล้ว +1

      ​@@Acti1337x Nan il a copié un com' de quelqu'un d'autre, et moi j'ai copié son com' ! :D #lebotteurBotté

    • @Acti1337x
      @Acti1337x 2 ปีที่แล้ว +1

      @@PierreMiniggio ahahah

  • @iwokssama4772
    @iwokssama4772 2 ปีที่แล้ว +3

    Très bonne vidéo ! J'ai aimé le racontage d'histoire.
    En résumé, ce n'est pas des comportements "bizarres".
    Mais chaque moteur d'exécution à ses particularités.
    Par exemple
    En LUA, les tableaux commence à 1.
    En Python : False or "coacadmin" donne 'cocadmin'
    Ces comportements sont des contraintes spécifiques.
    Une bel anecdote (qui prouve que je suis vieux) la calculatrice Windows qui renvoyait 0.9999999 au lieu de 1 à certains calculs
    Haaaaa! Je sais pas quel mot tu as bloqué. Du coup, mon 1er comment passe pas. Haaaaaa! 🤣🤣🤣🤣

  • @christophebrunel7106
    @christophebrunel7106 2 ปีที่แล้ว

    Du coup la suite m'intéresse alors je viens de m'abonner à ta newsletter. 👍
    Après, on n'est pas obligé non plus d'utiliser ces bizarreries. Quand on est habitué à des langages plus rigoureux, n est aussi habitué à faire attention aux types des variables. 😉
    En tout cas quand j'ai découvert Javascript, c'est la première chose qui m'a étonnée de pouvoir comparer des choux à des carottes! 😀

  • @pandaDotDragon
    @pandaDotDragon 2 ปีที่แล้ว +18

    Tu as oublié un petit détail: JS c'est le seul langage de développement dont le créateur a demandé qu'il ne soit pas reconnu comme tel. Ca montre l'ampleur du désastre...

  • @whilechannel
    @whilechannel 2 ปีที่แล้ว

    J’aimerais savoir ça fait combien de temps que tu fais du JS ?

  • @bougatayaabdoullah
    @bougatayaabdoullah 2 ปีที่แล้ว +1

    Il ne faux pas oublier que Microsoft a crée Typescript au 9 février 2012

  • @saucisse_dev
    @saucisse_dev 2 ปีที่แล้ว

    Très bien raconté ! Du coup la version qu'on utilise actuellement découle du reverse engineering de Microsoft ?

  • @Watcha93
    @Watcha93 2 ปีที่แล้ว +1

    J'en pris un coup de vieux en voyant Netscape mdr je me revois au collège. Merci pour l'histoire en tout cas très intéressant.

  • @philippelaurent835
    @philippelaurent835 ปีที่แล้ว

    Bill Gates en septembre 95 croyait plus en MSN qu'en internet.
    En 1995, j'avais acheté un pc sous Windows 95 et l'on pouvait se connecter au réseau propriétaire de microsoft MSN avec une communication par modem ( couts de téléphone).
    Cela faisait penser à FirstClass. Cela marchait bien mais fut doublé par internet. Vu les investissements, Microsoft insista, mais les actionnaires, ou le bon sens, incitèrent Microsoft a rejoindre la vague internet. En fait, internet était trop bien pour que l'on se confine à du Microsoft, et B.Gates à mis du temps à l'admettre.A cette époque on disait "tu crois en internet ?".....

  • @tibo1890
    @tibo1890 2 ปีที่แล้ว +1

    Tes vidéos storytelling sont des MASTERCLASS !

  • @transformizem
    @transformizem 2 ปีที่แล้ว

    c'est quoi la musique en arriere plan ? merci d'avance

  • @tcgvsocg1458
    @tcgvsocg1458 2 ปีที่แล้ว

    Ou est la video sur minecraft?
    (Je suis pas fan de ce jeu tu a juste dit que tu ferait une injection en python et je suis chaud pour voir ça

  • @clement1370
    @clement1370 2 ปีที่แล้ว +1

    Sympa mais je trouve que ça se termine vraiment d'une manière inachevée. J'imagine que continuer l'historique avec firefox/chrome et les standards EcmaScriptde aurait demandé encore de nombreuses minutes de vidéo mais c'est dommage de terminer comme ça...

  • @youssoufarsawi9028
    @youssoufarsawi9028 2 ปีที่แล้ว

    et comment chrome est passé devant explorer ?

  • @fitagaming457
    @fitagaming457 2 ปีที่แล้ว +4

    mais !! tes vidéos sont aussi douces que du miel, t’es un génie !

  • @Tenkite001
    @Tenkite001 ปีที่แล้ว +1

    Pour le l'histoire de 10 + '1' et 10 - '1'
    Tout simplement car le + est prioritairement un "attacheur" de string
    Donc en gros ca va transformer le dernier nombre en string et le rattacher au 10
    Tantdis que le - n'est pas un "attacheur" de string
    Et puis j'ai envie de dire, qui veut additioner les int et les str dans le but d'avoir un résultat xD
    Pour les tableau c simple chaque tableau c'est considéré comme object et vu que les object c unique bah voila

    • @nomnom9110
      @nomnom9110 ปีที่แล้ว

      Exactement ça s'apprend d'ailleurs dans les premiers cours javascript

  • @Tom-rq9sz
    @Tom-rq9sz 2 ปีที่แล้ว

    Merci pour cette vidéo très cool ! Ça fait du bien de faire un petit bond dans le passé pour mieux comprendre ce qu’on utilise aujourdhui
    Est ce que tu envisagerait faire une vidéo sur PromQL? Ca serait super utile :)

  • @edera.2011
    @edera.2011 2 ปีที่แล้ว

    J’aime bien “sentir les flairons” aussi 🤣 GG la video 🙌🏾

  • @LiorCHAMLA
    @LiorCHAMLA 2 ปีที่แล้ว

    Super vidéo bro

  • @anthony_issa
    @anthony_issa 2 ปีที่แล้ว

    Quel plaisir ce genre de format

  • @bikotchotcho8262
    @bikotchotcho8262 2 ปีที่แล้ว

    Le résultat 0.1 + 0.2 est partagé par presque tous les langages, cela vient de l'implémentation de l'IEEE 754 donc Java, Python, JavaScript ont tous ce défaut.

    • @ChesterKea
      @ChesterKea 2 ปีที่แล้ว

      T as un lien pour expliquer ? Merci

  • @michelmenard67
    @michelmenard67 2 ปีที่แล้ว

    J'adore ces petits vidéo sur l'histoire de l'informatique. Merci 👍🏽👍🏽

  • @esaiemuhasa4135
    @esaiemuhasa4135 2 ปีที่แล้ว

    Je ne suis pas fane de JavaScript, mais essayons de voir les choses de plus près.
    Quand à ce qui concerne la comparaison des tableaux, cela n'est pas directement lié à JavaScript mais plutôt à la logique par défaut de comparaison des tableaux.
    En plus pour le 0.1 + 0.2, même en C si tu fait printf("valeur: %f", (0.1+0.2)); tu auras un truc du genre 0.30000 dans la console. Je pense que cela est due à la manière dont le processeur exécute les opérations arithmétique sur le nombre à virgule.

  • @stephane-lopez
    @stephane-lopez 2 ปีที่แล้ว

    Que de bons souvenirs JavaScript dans les années 2000 ! 😀

  • @lapcyagi9465
    @lapcyagi9465 2 ปีที่แล้ว +1

    "It's not a bug, it's a feature." - Brendan Eich

  • @babycodeur5594
    @babycodeur5594 2 ปีที่แล้ว

    Salut j’ai pas encore regardé la vidéo, mais j’ai lu le titre. Tu viens de te faire un ennemi puissant Coca. Très puissant .

    • @babycodeur5594
      @babycodeur5594 2 ปีที่แล้ว

      Bon ok 30 secondes de videos je retire ce que j’ai dis .t’as raison …

  • @hb8527
    @hb8527 2 ปีที่แล้ว

    j'adore !! cette histoire je l'ai lu dans un bouquin et j'en avais parlé en cours l'année dernière ^^

  • @DjSwiti
    @DjSwiti 2 ปีที่แล้ว +1

    2 + '1' == 21 car le + est considéré comme une concaténation
    2 - '1' == 1 car le moins est une opération mathématique, c'est la seule chose possible ici
    [] == 0 car [] c'est un tableau vide, qui n'est pas nul (c'est pourquoi vous pouvez faire "if (tableauVide)")
    "" == 0 c'est un peu la même histoire, et c'est pourquoi [] == ""

    • @nomnom9110
      @nomnom9110 ปีที่แล้ว

      Exactement, mais bon il le sait il veut juste faire du buzz

  • @kevindiallo5235
    @kevindiallo5235 2 ปีที่แล้ว

    ducoup j'apprends JavaScript ? ou je me lance direct back end avec php. et apres je me consacre au langage script C et python

    • @nomnom9110
      @nomnom9110 ปีที่แล้ว +1

      Du coup t'as fais quoi ?
      C'est le problème avec ce genre de vidéo mensongère faîtes par des aigris qui veulent restreindre et décourager ceux qui veux être developpeur
      Javascript est très populaire et demandé pour travailler dans le dev front end et back end
      C'est un très bon langage, et très utiles pour le taff.
      Le mieux est d'apprendre front end et back end
      Et de ce que je vois on commence souvent par le front end qui permet de t'initialiser a la programmation
      Courage

  • @CameleonGamer
    @CameleonGamer 2 ปีที่แล้ว

    Tu peux expliquer l'histoire de forge (installer de mod Minecraft)

  • @yssmontana6952
    @yssmontana6952 2 ปีที่แล้ว

    musique de fond ?

  • @beethoven5984
    @beethoven5984 2 ปีที่แล้ว

    Super épisode !

  • @Jerem92iz
    @Jerem92iz 2 ปีที่แล้ว +1

    On veut la suite sur Firefox!

  • @motyakskellington7723
    @motyakskellington7723 2 ปีที่แล้ว

    3 > 2 > 1 retourne faux parce que ça fait (3 > 2) > 1 soit true > 1 soit 1 > 1, comme dans beaucoup de langages ça traite les opérateurs de gauche à droite (exception pour opérateurs mathématiques où on respecte la priorité des opérateurs). 0 est considéré comme faux, tout ce qui n'est pas faux est considéré comme true donc 1 se convertit en true.

  • @JambonBeurre83
    @JambonBeurre83 2 ปีที่แล้ว

    Ça me fait tellement plaisir de lire le titre de cette vidéo ! Merci ! Et bravo :-)

  • @Ashenroger
    @Ashenroger 2 ปีที่แล้ว +1

    Hé ben maintenant, il va falloir poursuivre avec ce format super intéressant.

  • @makidoko
    @makidoko ปีที่แล้ว +1

    10 - '1' (un nombre moins une chaîne) n'a aucun sens, donc c'est interprété comme 10 - 1 = 9... Correct.
    10 + '1' (un nombre plus une chaîne) n'a toujours aucun sens, et l'opération "+ chaîne" est une opération de concaténation, donc interprété comme "10" + "1" = "101"... Correct
    3 > 2 > 1 enchaîne deux comparaisons booléenne : 3 > 2 = vrai... (pour rappel "vrai" = 1, "faux" = 0) donc 3 > 2 = true = 1 ... 1 > 1 = false... Correct.
    [] == [], tu compare deux objets dont on ne connaît rien (ni type ni contenu) qui sont à des adresses différentes... Ce sont donc deux objets différents, donc la comparaison ne peut être que fausse... Correct
    0.1 + 0.2 donne un résultat en virgule flottante à la précision douteuse.... Comme dans tous les langages... Correct.
    Donc résumé : dans tes exemples, rien n'est pété, mis à part tes exemples. Tu n'est pas dév, mais un dév qui se poserait les mêmes questions que toi sur ces points, serait juste incompétent (et hélas il y en a énormément).
    Cela dit, je déteste JS, c'est un langage dégueulasse, mais tellement pratique.

  • @Pizatol
    @Pizatol 2 ปีที่แล้ว +3

    ouah ce fou rire en début de vidéo, j'étais pas prêt . Quel formidable conteur tu fais ! Accessoirement, le fond est très intéressant et instructif. Peut être pas autant que miner des crypto sur des Tamagotchi, mais très intéressant tout de même !

  • @GATo-il1nh
    @GATo-il1nh 2 ปีที่แล้ว

    Très intéressant ! De nos jours, que l'on souhaite ou non Javascript est devenu incontournable dans le Web.
    Avec tous les frameworks (react js, vue js, angular) basés sur Javascript c'est devenu un incontournable

  • @ayleisma7590
    @ayleisma7590 2 ปีที่แล้ว

    Si je ne dis pas de bêtises, je crois que Firefox était basé sur Netscape
    Du moins au début

  • @samas92i71
    @samas92i71 2 ปีที่แล้ว

    Dommage que tu ne parle pas de l'histoire après Netscape et comment tous les navigateurs on fait pour utiliser la même version de JS, ...

  • @jamalse6684
    @jamalse6684 2 ปีที่แล้ว

    Salut et bravo pour tes vidéos de (très) bonne qualité 😁. J’ai une question indirectement liée à la programmation et à laquelle je n’arrive malheureusement pas à trouver de réponse.
    Tu parle souvent de Linux et ma question est Pourquoi utiliser Linux? Y a t’il VRAIMENT un avantage? Par rapport à Windows? Mac? 🙄.
    Une explication de ta part serait très intéressante je pense…

    • @cocadmin
      @cocadmin  2 ปีที่แล้ว

      pour une utilisation de tous les jours non pas vraiment.
      Pour un developeur ou un sysadmin il y a plein d'outils qui ne marchent que sous linux

  • @schblu
    @schblu 2 ปีที่แล้ว

    Elles sont top tes vidéos ! Et merci pour le son modem 56 k ... toute mon adolescence !!!

  • @hegelmotokoua
    @hegelmotokoua 2 ปีที่แล้ว +1

    Grafikart explique pourquoi dans cette vidéo : th-cam.com/video/CDYiwshriWw/w-d-xo.html

  • @imbwbl
    @imbwbl 2 ปีที่แล้ว

    Il y a des solution a tout par exemple le 10 - '1' le moins sert a soustraire alors que le plus dans une string sert a les mettre ensemble

  • @lukjk3457
    @lukjk3457 2 ปีที่แล้ว +1

    J’imagine bien que tu le sais en tant que senior 😂 mais il faut utiliser « === » au lieu de « == » qui fonctionne comme le == en C par exemple.
    Sans oublier Typescript qui vient donner un peu d’ordre et de rigueur

    • @gronono
      @gronono 2 ปีที่แล้ว

      Tout à fait. Comme on évite maintenant d'utiliser le mot clé var, de déclarer des fonctions avec le mot clé function (sinon on peut l'utiliser avant de l'avoir déclarée comme pour var), .... On utilise maintenant du JS moderne et normalisé (ECMAScript)

    • @kurusanyasuke2853
      @kurusanyasuke2853 2 ปีที่แล้ว

      Je cherchais le commentaire avant de taper 😉

  • @edgasszair
    @edgasszair 2 ปีที่แล้ว

    Très fascinante cette histoire !!

  • @Coni128
    @Coni128 5 หลายเดือนก่อน

    4:40 petite erreur. Lorsqu'il s'enferme durant 10 jours ce n'est pas "babababa" qu'il a fait. Il avait démenti cette rumeur durant un interview.

  • @dsebzz6553
    @dsebzz6553 2 ปีที่แล้ว

    Une vidéo qui mérite 1 million de vues ! On adore !

  • @topgrandiosodellaclasseverte
    @topgrandiosodellaclasseverte 2 ปีที่แล้ว

    Mais du coup qu'est devenu le JScript après la mort de iexplorer ? Mort ou remis dans Edge ?

  • @ducassoulet
    @ducassoulet 2 ปีที่แล้ว

    Juste, le == n'est pas la même chose que le === . En effet, le === signifie strictement égal exemple:
    1 === "1" // false
    1 == "1" // true

  • @proutgoatsclips9425
    @proutgoatsclips9425 2 ปีที่แล้ว

    8 mins... pour une histoire si complète et complètement compréhensible. J'adore ce type de contenu ! On t'en remercie continue :DD

  • @sami-k8e
    @sami-k8e 5 หลายเดือนก่อน

    Et typescript ne corrige pas ces erreurs? Euh Netscape c Firefox pour la petite histoire. Qui a déjà acheté ou vendu un navigateur ?

  • @simonlelamer9885
    @simonlelamer9885 2 ปีที่แล้ว

    pour le premier c'est simple, c'est parce que le signe plus a deux fonctionnalités : additioner et concaténer

  • @bilalemohmadian8611
    @bilalemohmadian8611 2 ปีที่แล้ว

    0.1+0.2 = 0.30000000000000004 Viens du binaire non du JS.
    0.3 * 2 = 0.6
    0.6 * 2 = 1,2
    0.2 * 2 = 0.4
    0.4* 2 = 0.8
    0.8* 2 = 1, 6
    0.6 * 2 = 1.2
    Donc 0.3 = 0.010011 et etc.... (La même chose pour 0.1 et d'autres nombres)
    ça reboucle jusqu'à atteindre la mentice (dépendant du système 24 en 32bits, 54 pour 64 bits...) . On utilise une inégalité dans ce genre de cas de figure et non une égalité :p

  • @sebastienrohaut5195
    @sebastienrohaut5195 2 ปีที่แล้ว +1

    Je n'aime pas JavaScript. Pas tant à cause du langage, qu'à cause du fait qu'on a fait croire à des devs frontend qu'ils pouvaient devenir des devs backend avec nodejs parcequ'ils savaient déjà coder en javascript. Dans plein de cas, c'est un désastre.
    Cependant, la plupart des exemples que tu donnes s'expliquent parfaitement. Et il est bien souvent le même dans d'autres langages. Les crochets définissent une liste, qui est un objet. TU compares deux objets, ils sont différents. Tes comparaisons suivent une précédence des opérateurs, et les calculs sur les réels (float), c'est ralant mais le comportement est le même en Python.
    Cependant, ceux avec qui j'ai travaillé (comme Ops) connaissent bien une phrase que je sortais régulièrement (par rapport à Javascript ou pire, Scala) : "tout ça ne serait pas arrivé en PHP". :)

  • @jeankruger9798
    @jeankruger9798 2 ปีที่แล้ว

    Mon p'tit WTFJS perso (vécu) :
    '' == false -> true
    '0' == false -> true
    '' == '0' -> false
    !'' -> true
    !'0' -> false
    //et le meilleur
    '0' == !'0' -> true
    '' == !'' -> false

  • @rayanarnel8244
    @rayanarnel8244 2 ปีที่แล้ว

    Explication fonctionnement du JavaScript
    Je n'aime pas trop les exemples donnés pour dire que le JavaScript est nul à cause de ceci ou cela.
    Commençons par :
    10 - '1' = 9
    Pourquoi ça ne fait pas -39 ?
    Le JS n'est pas du C et le calcule n'est pas le suivent : 10 - 49(value ascii)
    Chaque langage a ses règles de fonctionnement à connaître pour comprendre pourquoi ça fonctionne comme cela.
    Ce n'est bien pas bien compliquer en C de convertir '1' (string 49) en 0 (int) il suffit de retirer 48 ou d'utiliser une fonction.
    10 + '1' = "101";
    Pour commencer, ce n'est pas une erreur, c'est un comportement voulu.
    D'ailleurs, c'est une erreur d'avoir le résonnement plus haut comme base de raisonnement en js.
    '1' != string du langage C (qui a pour capacité de stock un entier jusqu'a 255)
    Au moment de créer une variable, le JavaScript va détecter sont "type"
    var lettre = 'A';
    À ce moment-là, il va créer un objet qui a différentes methodes attachées à lui.
    Plus de 50 méthodes attaché a l'objet.
    L'objet va avoir un comportement diffèrent en fonction de comment ont interagi avec lui.
    Première chose une string "bonjour" est différent d'un tableau ['b';'o','n','j','o','u','r'];
    Dans le premier cas "bonjour" on a un type string avec différente methode attaché plus haut en un seul objet qui permet d'interagire avec la string et dans le ca du tableau on a un tableau qui est aussi un objet avec des methodes propre a lui qui stock d'autre objet avec leur methode :D !
    donc on a 7 objet stocker dans un array.
    Maintenant POURQUOI 10 + '1' = "101" ?
    A la fin de cette opération il va falloir faire un choix du comportement voulu du langage et en javascript celui-ci a été décidé :
    Pour concaténation une string en js on a pas d'opérateur specifique, mais qui a dit qu'il n'y a pas de solution a cela ?
    Il suffit d'ajouter un + pour prévenir qu'on souhaite un objet de type nombre.
    10 + (+'1') = 11;
    7 autre methode peut etre plus jolie mais je prefere celle ci pour avoir que 1 caractère
    dev.to/sanchithasr/7-ways-to-convert-a-string-to-number-in-javascript-4l
    Les priorités en js si une string fait une addition elle veux automatiquement faire une concatenation, c'est son fonctionnement l'opérateur + avec une string revient a faire une concaténation !
    Je rappel que la string n'est pas un simple entier ! mais un objet avec differente valeur !
    donc le type Nombre va etre concatenation vous avez surement envie de me dire c'est pas normal c'est un nombre ! !!!
    je vous répondrai que non ce n'est pas un simple nombre c'est aussi un objet avec des méthode, l'objet number != int
    Donc de base la logique est biaisé, si on la regarde en ce disant pourquoi il travaille pas comme en C ! tu ne va pas additionné des structure en C ? n'est ce pas?
    Oui vous me poserai la question rajouter des couche ?
    Oublion pas que le int par exemple 1 et un binaire avant d'avoir des couche pour le rendre plus facile a travaille pour l'homme.
    Js essaye de faire la meme chose facilité la programmation qu'il y arrive c'est un autre debat.
    Qui va reproché a n'importe qui d'avoir un comportement different d'une simple addition sur deux classe differente !
    Le javascript fonctionne via des objet et le reste se fait en respectent des regle ! Et le comportemet est voulu !
    pour le ([] == []) = false
    La raison est simple un tableau aussi c'est un objet :'D stop me tape pas j'arrete d'ecrire se mot, juste une derniere fois o b j e t avec methode.
    MAIS unique !
    ([] == [])
    FALSE
    (tu instanci un objet de type array == tu instanci un autre objet qui a rien a voir avec le premier)
    il va comparer si l'existance des deux sont les meme, pas que le contenue est le meme !
    let array1 = [];
    let array2 = array1;
    array1 == array2
    array1 == array2
    true
    array1.push("EE"); (ajoute ee dans array1)
    array1
    ['EE']
    array2
    ['EE']
    oui une relation entre les deux tableau ce n'est pas une copy mais la réference qui a été passer !
    array1 == ['EE']
    FALSE (oui c'est pas la meme réference !) en js il a été décidé de pouvoir comparer les references des tableau entre eux !
    d'ailleur passer un tableau dans une fonction c'est par réference par defaut est non par copy (il y a des solution pour cela)
    donc ceci :
    let test => (tableau) = {tableau.push("encore");} // varaible qui stock une fonction anonym
    test(array1);// du coup c'est la référence tableau qui est envoyer et non une copy
    array1
    (2) ['EE', 'encore']
    et array2 ??????
    (2) ['EE', 'encore']
    La meme !
    Pour le float les autre commentaire on plutot bien expliquer pas besoin de rajouter une couche mais c'est pas du a Javascript mais au fonctionnement du float !
    Je ne suis pas douer en orthographe et en construction de phrase que vous n'avez pas trop souffert ^^