Lesen Sie „JavaScript Definitive Guide“ (Rhino Books) und teilen Sie es

Lexikalische Struktur von JavaScript:

  1. Textbezogen: JavaScript erkennt Zeilenumbruch-, Wagenrücklauf- und Wagenrücklauf-/Zeilenumbruchsequenzen als Abschlusszeichen
  2. Reservierte Wörter: Einige Schlüsselwörter (z. B. let) können aufgrund der Kompatibilität mit alten Programmen nicht vollständig reserviert werden. Beispielsweise können Variablen, die mit „var“ außerhalb der Klasse deklariert werden, „let“ als Variablennamen verwenden, nicht jedoch, wenn sie mit „const“ innerhalb der Klasse deklariert werden.
  3. Unicode-Normalisierung
  4. Optionales Semikolon. In der JavaScript-Syntax wird das Semikolon nicht wie in Java als Ende der Anweisung verwendet. Wenn die Anweisung mit (, [, /, + oder -) beginnt, kann sie als Teil der Wertanweisung interpretiert werden, also sind wir es in Diese Situation sollte in der Entwicklung vermieden werden, aber wenn sie sinnvoll ist, sollte vor diesen Anweisungen ein Semikolon zur Verteidigung eingefügt werden. Ähnlich wie im Folgenden:
let x = 0      // 这里是省略分号
;[x,x+1,2*x].forEach(console.log)    // 防御:保证这条语句独立
  1. Fügen Sie keine neue Zeile zwischen Schlüsselwörtern wie „return“, „break“ oder „continue“ und den Ausdrücken dahinter ein. Wenn Sie versehentlich eine neue Zeile hinzufügen, wird das spätere Debuggen sehr mühsam, da der Fehler nicht offensichtlich ist.
  2. Bei Verwendung einer Pfeilfunktion muss sich der Pfeil => in derselben Zeile wie die Argumentliste befinden.

Dynamische und statische Sprachen

Mein Interesse an diesen beiden Substantiven wurde erst geweckt, als ich den folgenden Satz sah

Der größte Unterschied zwischen JavaScript und statischen Sprachen besteht darin, dass Funktionen und Klassen nicht nur Sprachsyntax sind, sondern Werte, die von JavaScript manipuliert werden können, also Objekte.

Damals fragte ich mich, ob es einer stark/schwach typisierten Sprache ähnelt. Später stellte ich fest, dass eine dynamische Sprache einer schwach typisierten Sprache und eine statische Sprache einer stark typisierten Sprache entspricht. Fügen Sie unten einen Satz
hinzu

Computer funktionieren, indem sie Werte (wie die Zahl 3,14) oder Text (wie das Hallo-Wort) manipulieren. Diese darstellbaren und manipulierbaren Werte werden in Programmiersprachen als Typen bezeichnet.
Die von einer Sprache unterstützten Typen sind die grundlegendsten Merkmale der Sprache. Die Funktionsweise von Variablen ist ein weiteres grundlegendes Merkmal einer Programmiersprache.

statische Sprache (stark typisierte Sprache)

Eine statische Sprache ist eine Sprache, in der der Datentyp einer Variablen zur Kompilierungszeit bestimmt werden kann. Die meisten statisch typisierten Sprachen erfordern, dass der Datentyp vor der Verwendung der Variablen deklariert werden muss.
Zum Beispiel: C++, Java, Delphi, C# usw.

Dynamische Sprachen (schwach typisierte Sprachen)

Dynamische Sprachen sind Sprachen, in denen Datentypen zur Laufzeit ermittelt werden. Variablen erfordern vor ihrer Verwendung keine Typdeklaration, und normalerweise ist der Typ der Variablen der Typ des zugewiesenen Werts.
Wie PHP/ASP/Ruby/Python/Perl/ABAP/SQL/JavaScript/Unix Shell und so weiter.

stark typisierte Sprache

Eine Sprache, die Datentypdefinitionen erzwingt. Das heißt, sobald einer Variablen ein bestimmter Datentyp zugewiesen wird und sie nicht umgewandelt wird, wird sie immer von diesem Datentyp sein. Beispiel: Wenn Sie eine Ganzzahlvariable a definieren, kann das Programm a nicht als Zeichenfolgentyp behandeln. Stark typisierte Sprachen sind typsichere Sprachen.

schwach typisierte Sprache

Sprachen, in denen Datentypen ignoriert werden können. Es ist das Gegenteil einer stark typisierten Sprache, bei der einer Variablen Werte unterschiedlicher Datentypen zugewiesen werden können. Eine stark typisierte Sprache mag hinsichtlich der Geschwindigkeit einer schwach typisierten Sprache etwas unterlegen sein, aber die Strenge, die eine stark typisierte Sprache mit sich bringt, kann viele Fehler effektiv vermeiden.

Unterschied zwischen den beiden

charakteristisch

  1. Eine stark typisierte Sprache ist eine Sprache, in der der Typ einer Variablen, sobald sie bestimmt ist, nicht mehr konvertiert werden kann.
  2. In schwach typisierten Sprachen wird der Typ einer Variablen durch den Kontext bestimmt, in dem sie verwendet wird.

Vorteile statischer Sprachen

  1. Aufgrund der obligatorischen Typdeklaration verfügt die IDE über eine starke Fähigkeit zur Codewahrnehmung. Daher ist sie bei der Implementierung komplexer Geschäftslogik, der Entwicklung großer kommerzieller Systeme und Anwendungen mit einem langen Lebenszyklus auf die IDE angewiesen kann die Entwicklung des Systems garantieren;
  2. Da die statische Sprache relativ geschlossen ist, kann das Eindringen von Entwicklungskits von Drittanbietern in den Code minimiert werden.

Vorteile dynamischer Sprachen

  1. Das Denken ist nicht eingeschränkt, man kann es beliebig spielen und mehr Energie auf das Produkt selbst richten;
  2. Konzentrieren Sie sich auf die Umsetzung der Geschäftslogik. Der Denkprozess ist der Umsetzungsprozess.

Guess you like

Origin blog.csdn.net/m0_56026872/article/details/121977051