JavaScript: Das ist neu in ES2022 // deutsch

แชร์
ฝัง
  • เผยแพร่เมื่อ 12 พ.ย. 2024

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

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

    Danke fuer den Content. Ich bin seit einiger Zeit abonniert auf euren Kanal und mir gefaellt die deutliche und nich allzu auschweifende Zerlegung recht komplexer Sachverhalte ziemlich gut. Und auch die Thema's sprechen mich an (auch arbeite ich mehr mit Python und Elixir, das JavaScript laesst sich ja nicht so leicht abschuetteln)

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

    Dankeschön. Ich liebe Deine Art zu erklären. Klar, verständlich und alles nachvollziehbar. Einfach top. Danke

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

      [gr] Vielen lieben Dank 😊

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

    Vielen Dank für den wertvollen Content. Absolut TOP!

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

      [gr] Vielen, vielen Dank 😊

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

    Bin wieder aus dem Urlaub zurück :D und muss Videos nachschauen! Top!

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

    Danke für dieses tolle und informative Video 👍🏻

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

      [gr] Vielen lieben Dank 😊

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

    Wie wichtig sind dir eigentlich so Style Guides in JS/Node/TS? Wie z.B. der Style Guide von Airbnb. Bei Go ist das natürlich weniger notwendig.

    • @PH-rp1ku
      @PH-rp1ku 2 ปีที่แล้ว +3

      gute frage, das hab ich mich bei Golo auch schon gefragt was er dazu denkt

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

      [gr] Dazu machen wir demnächst mal ein eigenständiges Video 😊

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

      @@thenativeweb Du bist echt klasse, Golo! Ich werd das sicher direkt an mein Team weitergeben.

    • @PH-rp1ku
      @PH-rp1ku 2 ปีที่แล้ว +1

      @@thenativeweb danke!!!

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

    An und für sich sind die neuen Features soweit ok, besonders das Top-Level-Await.
    Die at() Funktion finde ich etwas Unglücklich, ein array[-1] hätte es auch getan. Was ich aber am wenigsten nachvollziehen kann ist das ergonomic brand Ding; zur Instanzprüfung gibt es bereits Möglichkeiten und auf private Felder zu prüfen erschließt sich mir nicht, die markiere ich ja als Privat damit man sie von Außen eben nicht sehen kann.
    Aber auf jeden Fall danke für das Video, ich hätte das sonst wohl überlesen 😀

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

      [gr] Vielen Dank für Deinen ausführlichen Kommentar 😊
      Das mit der at-Funktion geht mir ebenso. Ja, das ist ganz gut so, aber man hätte tatsächlich auch den Indexer anpassen können - aber, da kommt eben das Standardproblem von JavaScript zum Tragen: Es muss/soll immer alles abwärtskompatibel sein, und das wäre ein Breaking-Change gewesen. Daher die neue Funktion.

    • @schneider.mariane
      @schneider.mariane 2 ปีที่แล้ว

      array[-1] wäre nicht mit der Index-Rückgabe "-1" bei Methoten wie "find" für nicht enthalten/gefudnen vereinbar.

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

    Vielen lieben Dank, für die wieder einmal super Erklärung.

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

      [gr] Vielen lieben Dank 😊

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

    Danke für den Überblick. Da war einiges dabei, was ich noch nicht kannte.

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

    Wow, ich finde euren Kanal echt stark, kenne ihn noch nicht lange. Bin begeistert. LG aus Bayern

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

      [gr] Vielen, vielen Dank 😊

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

      @@thenativeweb Gerne doch, mal so ne kurze Frage, falls du ne Meinung dazu hast. Muss am Mitwoch mein Projekt vorstellen (App) und möchte gerne wissen ob es vom IHK lieber gesehen wird, wenn der Vortraghalter die App an sich zeigt oder nur Folien auflegt...:)

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

      @@nasenbar5417 ich empfehle Dir, deinen Vortrag durch eine optische Präsentation so zu ergänzen, dass es das was du sagst und ausdrücken möchtest möglichst gut unterstützt. Z.B. indem du auf einigen Folien u.a. Problemstellung, deine Herangehensweise und dein Vorgehen während der Entwicklung beschreibst. Am Ende könnte man das Vorgetragene dann noch mit einem Rundgang durch die App praktisch demonstrieren. Hab keine Erfahrung mit der IHK und was die gern sehen wollen (steht das vielleicht in irgendeiner Beschreibung des Prüfungsmoduls?), aber so solltest du zumindest gut zeigen können, was du im Projekt und in der Ausbildung gelernt hast. Viel Erfolg. 🤞

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

      @@njoyy5903 Cool, danke für die sehr ausführliche Antwort, freut mich und hilft mir schon mal etwas weiter :) So direkt ist das wohl nicht angegeben...leider

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

    Ja, da fällt mir möglicherweise ein use Case ein für die hasPrivateField Sache:
    Wenn man in js checken will, ob ein Objekt tatsächlich von der eigenen Klasse ist, kann man das als indirekten Check nutzen, quasi so, wie wenn ich bei Java eine equals Methode überschreiben würde.
    Ohne dieses Feature hätte man das Problem, dass man nur das direkte Interface der Klasse validieren könnte über .hasOwnProperty.
    Der ‚in‘ Operator prüft auch vererbte Felder, und zwar, wie du schon sagtest, an die Instanz gebunden, und nicht wie bei hasOwnProperty nur auf Namensgleicheitsbasis.
    Beispiel: ich definiere eine Klasse A mit einer ‚name‘ property und eine Klasse B mit einer ‚name‘ und einer ,#age‘ Property.
    Wenn Klasse A jetzt eine ‚equals‘ Methode auf Basis von hasOwnProperty implementieren würde, könnte man auch einfach eine Instanz von B übergeben und JS würde True zurück liefern, weil beide Objekte eine Name property haben.
    Fällt euch noch eine andere Möglichkeit ein, außer der ‚in‘ Operator, mit dem man dieses Verhalten in einer equals Methode abbilden könnte?

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

      [gr] Danke für Deinen Kommentar 😊

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

    Endlich ein Top-Level-Await. :D Was hat mich das an Fingerkuppen gekostet...

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

      [gr] Danke für Deinen Kommentar 😊

  • @jan-joseflinka5282
    @jan-joseflinka5282 2 ปีที่แล้ว +2

    Top-Level-Await finde ich gut! Die anderen Sprachfunktionen habe ich nicht wirklich vermisst! Die at Funktion ist sicherlich nützlich, aber ich hätte es besser gefunden, wen man sich was die Listenverarbeitung angeht syntaktisch mehrt an die der funktionalen Programmierung angelehnt hätte.

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

    Coole Video! Hab mir in den ersten Sekunden schon gedacht, wie lane du wohl Copilot an lässt, bis es dich nervt :D

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

      [gr] Danke schön 😊
      Normalerweise nutze ich Copilot eigentlich sehr gerne, aber dafür war er tatsächlich eher hinderlich.

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

    Also neu für mich war der statische Konstruktor einer Klasse, das finde ich sehr interessant, auch wenn ich noch keinen UseCase dafür habe. Das man Felder aber in der Klasse deklariert, das kannte ich aber schon, habe aber auch erst dieses Jahr angefangen mit JavaScript und vll zufällig schon das Neueste gehabt. Private Felder mir # hatte ich auch schon mal gesehen, aber noch nicht genutzt, wird aber definitiv noch kommen, da ich das in anderen OOP-Sprachen auch nutze (also eigentlich klar).
    Das mit throw finde ich mega interessant. Das werde ich definitiv ausprobieren, um Fehler in meiner API zu werfen. Mal schauen, wie das dann wirkt, wenn mein Server als Windows-Dienst oder Linux-Dienst läuft.
    Am interessantesten finde ich tatsächlich auch diese Geschichte mit dem Top-Level-Await, da ich selbst schon einmal als Anfänger in dieses Problem gerasselt bin (hatte ich sogar schonmal in einem Kommentar bei einem deiner Videos beschrieben) und ich auch eine Wrapper-Funktion geschrieben habe, exakt so wie du das beschrieben hast. Es funktioniert zwar und irgendwie ist es auch lesbar und auch wartbar (um mal wichtige Begriffe zu nennen), aber dennoch fühlt es sich nicht richtig an...
    Also, danke für das Video... Mir hat's geholfen...

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

      [gr] Vielen, vielen Dank für den ausführlichen Kommentar, das freut mich sehr 😊
      Und was statische Konstruktoren angeht … naja, der (einzige?) sinnvolle Anwendungsfall wäre halt, dass Du darin statische Member initialisieren kannst, wenn's komplexer wird, als man das mit einer einfachen Zuweisung ausdrücken könnte.

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

    Für Fehlermeldungen könnten Indices bei regulären Ausdrücken hilfreich sein. An der Stelle #x müsste a oder b stehen, aber c steht da.

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

      [gr] Danke für Deinen Kommentar 😊

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

    Spannend wäre mal eine Erklärung gewesen, wie die at()-Funktion technisch gelöst wurde. Offensichtlich sitzt sie ja nicht auf dem Array-Prototypen, und sie ist auch keine neue/spezielle Syntax wie primes[0]. Auf welchem Prototypen also sitzt at()? Ich vermute mal der Grund, warum man von hinten bei -1 statt 0 anfängt ist das 0 === -0 in JS. Es gibt einfach keinen Komparator der das Vorzeichen mit einbezieht.

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

      [gr] Doch, natürlich sitzt es auf dem Array-Prototypen: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/at
      Aber halt nicht nur, sondern zB auch auf dem String-Prototypen: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/at

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

    Dankeschön für die Details.

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

      [gr] Gern geschehen 😊

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

    WTF: Die hasOwnProperty-Funktion wurde auf Objekten aufgerufen und ist jetzt quasi eine statische Funktion auf Object: Object.hasOwn(...). Ok, verstehe ich. Aber bei der hasPrivateField-Funktion wird das nicht als statische Funktion auf Object definiert, sondern auf dem Typ. Und was ist wenn ich in dem Typ ein Attribut namens "hasPrivateField" habe? Ich habe eine Vermutung, welche Funktion in der nächsten Ecmascript-version statisch auf Object definiert wird...

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

      [gr] Warten wir mal ES2023 ab 😉

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

    Tolle Zusammenfassung

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

    Ist Copilot nicht gefährlich? Wegen möglichen Copyright-Verletzungen.

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

      [gr] Ja, das ist ein mögliches Problem (von mehreren) … interessant dazu auch: matthewbutterick.com/chron/this-copilot-is-stupid-and-wants-to-kill-me.html

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

    Sehr gutes Video 🙂