Inhaltsverzeichnis
Pfeilfunktion
Klasse Klasse
Erweitertes Objektliteral
Vorlagenzeichenfolge
Destrukturierungszuweisung
Default + Rest + Spread
Let + Const
Iterator
Generatoren
Unicode
Heim Web-Frontend js-Tutorial Zusammenfassung der neuen Funktionen von JS--ES 2015/6

Zusammenfassung der neuen Funktionen von JS--ES 2015/6

Jun 26, 2017 pm 12:01 PM
汇总 特性

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]
Nach dem Login kopieren


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;
  }}
Nach dem Login kopieren


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};
Nach dem Login kopieren


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);
Nach dem Login kopieren

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"
Nach dem Login kopieren

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
Nach dem Login kopieren

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";
  }
}
Nach dem Login kopieren

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);
}
Nach dem Login kopieren


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 "我们下次再见!";
}
Nach dem Login kopieren

Unicode

// wie ES5.1
"
Nach dem Login kopieren

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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

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

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Java-Tutorial
1664
14
PHP-Tutorial
1269
29
C#-Tutorial
1248
24
Einführung in die Unterschiede zwischen der Win7-Home-Version und der Win7-Ultimate-Version Einführung in die Unterschiede zwischen der Win7-Home-Version und der Win7-Ultimate-Version Jul 12, 2023 pm 08:41 PM

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.

Beherrschen Sie die Schlüsselkonzepte von Spring MVC: Verstehen Sie diese wichtigen Funktionen Beherrschen Sie die Schlüsselkonzepte von Spring MVC: Verstehen Sie diese wichtigen Funktionen Dec 29, 2023 am 09:14 AM

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

Gibt es in Golang klassenähnliche objektorientierte Funktionen? Gibt es in Golang klassenähnliche objektorientierte Funktionen? Mar 19, 2024 pm 02:51 PM

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

Beheben von Win11-Fehlern und -Problemen Beheben von Win11-Fehlern und -Problemen Jan 13, 2024 pm 08:21 PM

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,

Wählen Sie je nach Bedarf und Funktionen die passende Go-Version Wählen Sie je nach Bedarf und Funktionen die passende Go-Version Jan 20, 2024 am 09:28 AM

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

Was sind die drei Merkmale von 5g? Was sind die drei Merkmale von 5g? Dec 09, 2020 am 10:55 AM

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++-Funktionstypen und -merkmale C++-Funktionstypen und -merkmale Apr 11, 2024 pm 03:30 PM

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.

Was sind die Merkmale von Java? Was sind die Merkmale von Java? Aug 09, 2023 pm 03:05 PM

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;

See all articles