Zusammenfassung der neuen Funktionen von JS--ES 2015/6
ES 2015/6 hat ziemlich viele neue Inhalte. Hier ist nur eine grobe (nicht unbedingt umfassende) Liste dieser Funktionen. Tatsächlich wird in jedem Punkt, auf den Sie eingehen, viel Wissen enthalten sein. Dieser Artikel zielt darauf ab, ihn zusammenzufassen, sodass er keine eingehende Diskussion und Untersuchung dieser Merkmale durchführt. Wenn ich dann Zeit habe, werde ich ein paar separate Blogs schreiben, um mich eingehender mit häufig verwendeten Punkten zu befassen und einen intensiven Austausch mit allen zu führen.
Pfeilfunktion
Die Pfeilfunktion, eine Kurzform einer Funktion, die durch die =>
-Syntax implementiert wird, hat eine ähnliche Syntax in C#/JAVA8/CoffeeScript. Im Gegensatz zu Funktionen haben Pfeilfunktionen dasselbe this
mit ihrem Ausführungskontext. Wenn eine Pfeilfunktion innerhalb eines Funktionsobjekts erscheint, teilt sie die Variable arguments
mit der Funktion.
// Expression bodiesvar odds = evens.map(v => v + 1);var nums = evens.map((v, i) => v + i);// Statement bodiesnums.forEach(v => { if (v % 5 === 0) fives.push(v);});// Lexical thisvar bob = { _name: "Bob", _friends: ['jim'], printFriends() { this._friends.forEach(f => console.log(this._name + " knows " + f)); // Bob knows jim }};// Lexical argumentsfunction square() { let example = () => { let numbers = []; for (let number of arguments) { numbers.push(number * number); } return numbers; }; return example();}square(2, 4, 7.5, 8, 11.5, 21); // returns: [4, 16, 56.25, 64, 132.25, 441]
Klasse Klasse
Javascript 类
führt kein neues objektorientiertes Objektvererbungsmodell ein , sondern syntaktischer Zucker basierend auf prototypischer Vererbung. Es bietet eine einfachere und klarere Syntax für die Erstellung von Objekten und die Handhabung der Vererbung. Die Klasse
class Rectangle { constructor(height, width) { this.height = height; this.width = width; }}
erklärt keine Beförderung, Sie müssen vor dem Anruf sicherstellen, dass sie deklariert wurde.
Konstruktor constructor
ist eine spezielle Methode zum Erstellen und Initialisieren von Instanzen einer Klasse.
Statische Methodestatic
Schlüsselwort wird verwendet, um eine statische Methode zu deklarieren.
Erstellen einer Unterklasseextends
Schlüsselwort wird verwendet, um eine Unterklasse zu erstellen. Bitte beachten Sie hier: „extends“ kann nicht zum Erweitern regulärer Objekte (nicht) verwendet werden -constructible/non-constructible), wenn Sie von einem regulären Objekt erben möchten, verwenden Sie Object.setPrototypeOf()
.
Superklasse aufrufensuper
Schlüsselwort kann zum Aufrufen von Methoden in der übergeordneten Klasse verwendet werden
Mix-ins
Gemischt
Erweitertes Objektliteral
Das ist möglich in Form von Literalen implementiert werden, um Prototypen, Schlüssel-Wert-Paar-Abkürzungen, Definitionsmethoden usw. und dynamische Attributnamen zu definieren.
var obj = { // Sets the prototype. "__proto__" or '__proto__' would also work. __proto__: theProtoObj, // Computed property name does not set prototype or trigger early error for // duplicate __proto__ properties. ['__proto__']: somethingElse, // Shorthand for ‘handler: handler’ handler, // Methods toString() { // Super calls return "d " + super.toString(); }, // Computed (dynamic) property names [ "prop_" + (() => 42)() ]: 42};
Vorlagenzeichenfolge
Vorlagenzeichenfolge bietet syntaktischen Zucker zum Erstellen von Zeichenfolgen, in Prel/ Ähnliche Funktionen sind auch in Python und anderen Sprachen verfügbar.
// Basic literal string creation `This is a pretty little template string.` // Multiline strings `In ES5 this is not legal.` // Interpolate variable bindings var name = "Bob", time = "today"; `Hello ${name}, how are you ${time}?` // Unescaped template strings String.raw`In ES5 "\n" is a line-feed.` // Construct an HTTP request prefix is used to interpret the replacements and construction GET`http://foo.org/bar?a=${a}&b=${b} Content-Type: application/json X-Credentials: ${credentials} { "foo": ${foo}, "bar": ${bar}}`(myOnReadyStateChangeHandler);
Destrukturierungszuweisung
Die Destrukturierungsmethode ist ein Javascript-Ausdruck, der es ermöglicht, einen Wert aus einem Array oder eine Eigenschaft aus einem zu extrahieren Objekt in eine andere variable Mitte.
// list matching var [a, ,b] = [1,2,3]; a === 1; b === 3; // object matching (用新变量名赋值) var { op: a, lhs: { op: b }, rhs: c } = getASTNode() // object matching shorthand // binds `op`, `lhs` and `rhs` in scope var {op, lhs, rhs} = getASTNode() // Can be used in parameter position function g({name: x}) { console.log(x); } g({name: 5}) // Fail-soft destructuring var [a] = []; a === undefined; // Fail-soft destructuring with defaults var [a = 1] = []; a === 1; // 变量可以先赋予默认值。当要提取的对象没有对应的属性,变量就被赋予默认值。 var {a = 10, b = 5} = {a: 3}; console.log(a); // 3 console.log(b); // 5 // Destructuring + defaults arguments function r({x, y, w = 10, h = 10}) { return x + y + w + h; } r({x:1, y:2}) === 23 // 对象属性计算名和解构 let key = "z"; let { [key]: foo } = { z: "bar" }; console.log(foo); // "bar"
Default + Rest + Spread
Bietet Standardwerte für Funktionsparameter & ...
Feste Anzahl von Parametern
function f(x, y=12) { // y is 12 if not passed (or passed as undefined) return x + y; } f(3) == 15 function f(x, ...y) { // y is an Array return x * y.length; } f(3, "hello", true) == 6 function f(x, y, z) { return x + y + z; } // Pass each elem of array as argument f(...[1,2,3]) == 6
Let + Const
let
wird verwendet, um Bereichsvariablen auf Blockebene zu deklarieren. const
wird zum Deklarieren von Konstanten verwendet.
function f() { { let x; { // this is ok since it's a block scoped name const x = "sneaky"; // error, was just defined with `const` above x = "foo"; } // this is ok since it was declared with `let` x = "bar"; // error, already declared above in this block let x = "inner"; } }
Iterator
Benutzerdefinierte Iteratoren können über symbol.iterator erstellt werden.
let fibonacci = { [Symbol.iterator]() { let pre = 0, cur = 1; return { next() { [pre, cur] = [cur, pre + cur]; return { done: false, value: cur } } } } } for (var n of fibonacci) { // truncate the sequence at 1000 if (n > 1000) break; console.log(n); }
Generatoren
Normale Funktionen verwenden Funktionsdeklarationen, während Generatorfunktionen Funktions*-Deklarationen verwenden.
Innerhalb der Generatorfunktion gibt es eine Return-ähnliche Syntax: das Schlüsselwort yield. Der Unterschied zwischen den beiden besteht darin, dass eine normale Funktion nur einmal zurückgeben kann, während eine Generatorfunktion mehrmals nachgeben kann (natürlich kann sie auch nur einmal nachgeben). Während der Ausführung des Generators wird dieser sofort angehalten, wenn er auf einen Yield-Ausdruck trifft, und der Ausführungsstatus kann später wieder aufgenommen werden.
function* quips(name) { yield "你好 " + name + "!"; yield "希望你能喜欢这篇介绍ES6的译文"; if (name.startsWith("X")) { yield "你的名字 " + name + " 首字母是X,这很酷!"; } yield "我们下次再见!"; }
Unicode
// wie ES5.1 "
Das obige ist der detaillierte Inhalt vonZusammenfassung der neuen Funktionen von JS--ES 2015/6. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen











Jeder weiß, dass es viele Versionen des Win7-Systems gibt, z. B. die Win7-Ultimate-Version, die Win7-Professional-Version, die Win7-Home-Version usw. Viele Benutzer sind zwischen der Home-Version und der Ultimate-Version verwickelt und wissen nicht, welche Version sie wählen sollen. Deshalb werde ich Ihnen heute die Unterschiede zwischen Win7 Family Meal und Win7 Ultimate erläutern. 1. Experience Different Home Basic Edition macht Ihre täglichen Abläufe schneller und einfacher und ermöglicht Ihnen einen schnelleren und bequemeren Zugriff auf Ihre am häufigsten verwendeten Programme und Dokumente. Home Premium bietet Ihnen das beste Unterhaltungserlebnis und macht es einfach, Ihre Lieblingsfernsehsendungen, Fotos, Videos und Musik zu genießen und zu teilen. Die Ultimate Edition integriert alle Funktionen jeder Edition und verfügt über alle Unterhaltungsfunktionen und professionellen Features von Windows 7 Home Premium.

Verstehen Sie die Hauptfunktionen von SpringMVC: Um diese wichtigen Konzepte zu beherrschen, sind spezifische Codebeispiele erforderlich. SpringMVC ist ein Java-basiertes Framework für die Entwicklung von Webanwendungen, das Entwicklern beim Aufbau flexibler und skalierbarer Strukturen durch das Architekturmuster Model-View-Controller (MVC) hilft. Internetanwendung. Wenn wir die wichtigsten Funktionen von SpringMVC verstehen und beherrschen, können wir unsere Webanwendungen effizienter entwickeln und verwalten. In diesem Artikel werden einige wichtige Konzepte von SpringMVC vorgestellt

In Golang (Go-Sprache) gibt es kein Konzept einer Klasse im herkömmlichen Sinne, es stellt jedoch einen Datentyp namens Struktur bereit, durch den objektorientierte Funktionen ähnlich wie Klassen erreicht werden können. In diesem Artikel erklären wir, wie Strukturen zur Implementierung objektorientierter Funktionen verwendet werden, und stellen konkrete Codebeispiele bereit. Definition und Verwendung von Strukturen Werfen wir zunächst einen Blick auf die Definition und Verwendung von Strukturen. In Golang können Strukturen über das Schlüsselwort type definiert und dann bei Bedarf verwendet werden. Strukturen können Attribute enthalten

Einige Leute möchten Win11 aktualisieren, wissen aber nicht, ob es viele Fehler in Win11 gibt und ob das Update Probleme verursachen wird. Tatsächlich gibt es jetzt Fehler in Win11, die jedoch kaum Auswirkungen auf die Verwendung haben. Gibt es viele Fehler in Win11? Antwort: Es gibt immer noch viele Fehler in Win11. Diese Fehler haben jedoch kaum Auswirkungen auf den täglichen Gebrauch. Wenn der Benutzer hohe Anforderungen an den täglichen Gebrauch stellt, wird eine spätere Verwendung empfohlen. Zusammenfassung der Win11-Fehler 1. Ressourcenmanager 1. Manchmal kommt es zu einem Speicherüberlauf, der zu einer hohen Speichernutzung des Ressourcenmanagers führt. 2. Diese Situation führt dazu, dass der Speicher mehr als 70 % belegt, was dazu führt, dass der Computer einfriert oder sogar abstürzt. 2. Konflikte und Abstürze 1. Einige Anwendungen sind nicht kompatibel genug, was zu Konflikten untereinander führt. 2. Obwohl es relativ wenige Konfliktverfahren gibt,

Mit der rasanten Entwicklung des Internets werden Programmiersprachen ständig weiterentwickelt und aktualisiert. Unter ihnen hat die Go-Sprache als Open-Source-Programmiersprache in den letzten Jahren große Aufmerksamkeit erregt. Die Go-Sprache ist so konzipiert, dass sie einfach, effizient, sicher und leicht zu entwickeln und bereitzustellen ist. Es zeichnet sich durch hohe Parallelität, schnelle Kompilierung und Speichersicherheit aus und wird daher häufig in Bereichen wie Webentwicklung, Cloud Computing und Big Data eingesetzt. Derzeit sind jedoch verschiedene Versionen der Go-Sprache verfügbar. Bei der Auswahl einer geeigneten Go-Sprachversion müssen wir sowohl Anforderungen als auch Funktionen berücksichtigen. Kopf

Die drei Merkmale von 5g sind: 1. Hohe Geschwindigkeit; in praktischen Anwendungen ist die Geschwindigkeit des 5G-Netzwerks mehr als zehnmal so hoch wie die des 4G-Netzwerks. 2. Geringe Latenz: Die Latenz des 5G-Netzwerks beträgt etwa zehn Millisekunden und ist damit schneller als die menschliche Reaktionsgeschwindigkeit. 3. Breite Verbindung; die Entstehung des 5G-Netzwerks wird in Kombination mit anderen Technologien eine neue Szene des Internet of Everything schaffen.

C++-Funktionen haben die folgenden Typen: einfache Funktionen, konstante Funktionen, statische Funktionen und virtuelle Funktionen; zu den Funktionen gehören: Inline-Funktionen, Standardparameter, Referenzrückgaben und überladene Funktionen. Beispielsweise verwendet die Funktion „calculeArea“ π, um die Fläche eines Kreises mit einem bestimmten Radius zu berechnen und gibt sie als Ausgabe zurück.

Die Merkmale von Java sind: 1. Einfach und leicht zu erlernen; 2. Objektorientiert, wodurch der Code wiederverwendbar und wartbar wird; 3. Plattformunabhängig, auf verschiedenen Betriebssystemen lauffähig; 4. Speicherverwaltung durch automatische Müllabfuhr; Sammelmechanismus: Speicher verwalten; 5. Starke Typprüfung, Variablen müssen ihren Typ vor der Verwendung deklarieren; 6. Sicherheit, die den unbefugten Zugriff und die Ausführung von Schadcode verhindern kann; Programm; 8. Ausnahmebehandlung kann Programmabstürze vermeiden; 9. Eine große Anzahl von Entwicklungsbibliotheken und Frameworks; 10. Open-Source-Ökosystem;
