Inhaltsverzeichnis
1) JavaScript-Pfeilfunktionen
2) JavaScript-Promises
3) Asynchrone JavaScript-Funktionen
4) JavaScript 解构
嵌套对象解构
解构数组
5) 默认和剩余参数(Default and Rest Parameters)
默认参数(Default Parameters)
剩余参数(Rest Parameters)
结论
Heim Web-Frontend js-Tutorial Ein Blick auf die fünf wichtigsten Funktionen von JavaScript ES6

Ein Blick auf die fünf wichtigsten Funktionen von JavaScript ES6

Jun 23, 2020 pm 12:43 PM
es6 javascript

Ein Blick auf die fünf wichtigsten Funktionen von JavaScript ES6

JavaScript ES6 fügt eine Vielzahl neuer Sprachfunktionen hinzu, von denen einige bahnbrechender und allgemeiner verfügbar sind als andere. Funktionen wie ES6-Klassen sind zwar neuartig, aber eigentlich nur syntaktischer Zucker zusätzlich zu den bestehenden Methoden zum Erstellen von Klassen in JavaScript. Funktionen wie Generatoren sind zwar sehr leistungsfähig, aber für gezielte Aufgaben reserviert.

Durch die Arbeit an verschiedenen JavaScript-bezogenen Projekten in den letzten 12 Monaten habe ich festgestellt, dass fünf ES6-Funktionen unverzichtbar sind, weil sie die Art und Weise, wie gängige JavaScript-Aufgaben erledigt werden, wirklich vereinfachen. Ihre Top 5 unterscheiden sich möglicherweise von meinen. Wenn ja, hoffe ich, dass Sie sie am Ende im Kommentarbereich teilen.

Lass uns anfangen!

  1. Pfeilfunktionen
  2. Versprechen
  3. Asynchrone Funktionen
  4. Destrukturierung
  5. Standard- und Restparameter

1) JavaScript-Pfeilfunktionen

Eine meiner liebsten neuen Funktionen in ES6 JavaScript ist keine völlig neue Funktion, sondern eine neue Syntax, die mich jedes Mal zum Lächeln bringt, wenn ich sie verwende. Ich spreche von Pfeilfunktionen, die eine äußerst elegante und prägnante Möglichkeit bieten, anonyme Funktionen zu definieren.

Kurz gesagt, die Pfeilfunktion verliert das Schlüsselwort function und verwendet dann einen Pfeil =>, um den Parameterteil und den Funktionskörper einer anonymen Funktion zu trennen:

(x, y) => x * y;
Nach dem Login kopieren

Das ist ziemlich Genau äquivalent zu:

function(x, y){
    return x * y;
}
Nach dem Login kopieren

oder:

(x, y) => {
    var factor = 5;
    var growth = (x-y) * factor;
}
Nach dem Login kopieren

Entspricht genau:

function(x, y){
    var factor = 5;
    var growth = (x-y) * factor;
}
Nach dem Login kopieren

Pfeilfunktionen beseitigen auch eine wichtige Fehlerquelle bei der Verwendung herkömmlicher anonymer Funktionen, nämlich den Wert des this-Objekts innerhalb der Funktion. Mithilfe von Pfeilfunktionen basiert this auf lexikalischer Bindung, was nur eine schicke Art ist auszudrücken, dass sein Wert an den übergeordneten Bereich gebunden ist und sich nie ändert. Wenn eine Pfeilfunktion in einem benutzerdefinierten Objekt countup definiert ist, zeigt der Wert this zweifellos auf countup. Zum Beispiel:

var countup = {
    counter: 15,

    start:function(){
        window.addEventListener('click', () => {
            alert(this.counter) // correctly alerts 15 due to lexical binding of this
        })
    }
};

countup.start();
Nach dem Login kopieren

Im Vergleich zu herkömmlichen anonymen Funktionen, bei denen sich der Wert von this vom Kontext abhängt, in dem er definiert wird. Wenn Sie im obigen Beispiel versuchen, auf this.counter zu verweisen, wird das Ergebnis undefined zurückgegeben, ein Verhalten, das viele Menschen verwirren kann, die mit der Komplexität der dynamischen Bindung nicht vertraut sind. Mithilfe von Pfeilfunktionen ist der Wert von this immer vorhersehbar und leicht abzuleiten.

Eine ausführliche Erläuterung der Pfeilfunktionen finden Sie unter „Überblick über JavaScript-Pfeilfunktionen“.

2) JavaScript-Promises

JavaScript ES6 Promises ermöglicht die Verarbeitung asynchroner Aufgaben Linear, das ist eine Aufgabe in den meisten modernen Webanwendungen. Anstatt sich auf Callback-Funktionen zu verlassen – populär gemacht durch JavaScript-Frameworks wie jQuery. JavaScript-Versprechungen nutzen einen zentralen, intuitiven Mechanismus zum Verfolgen und Reagieren auf asynchrone Ereignisse. Dies erleichtert nicht nur das Debuggen von asynchronem Code, sondern macht auch das Schreiben zum Vergnügen.

Alle JavaScript-Promises beginnen und enden mit dem Promise()-Konstruktor:

const mypromise = new Promise(function(resolve, reject){
 // 在这编写异步代码
 // 调用 resolve() 来表示任务成功完成
 // 调用 reject() 来表示任务失败
})
Nach dem Login kopieren

verwendet intern die Methoden resolve() und reject(). Wenn ein Promise abgeschlossen oder abgelehnt wird, können wir es senden Signale separat an ein Promise-Objekt senden. Die Methoden then() und catch() können dann aufgerufen werden, um die Arbeit zu erledigen, nachdem das Versprechen abgeschlossen oder abgelehnt wurde.

Ich verwende die folgende Promise-Variante, die in die XMLHttpRequest-Funktion eingefügt wird, um externe Dateiinhalte einzeln abzurufen:

function getasync(url) {
    return new Promise((resolve, reject) => {
        const xhr = new XMLHttpRequest()
        xhr.open("GET", url)
        xhr.onload = () => resolve(xhr.responseText)
        xhr.onerror = () => reject(xhr.statusText)
        xhr.send()
    })
}

getasync('test.txt').then((msg) => {
    console.log(msg) // echos contents of text.txt
    return getasync('test2.txt')
}).then((msg) => {
    console.log(msg) // echos contents of text2.txt
    return getasync('test3.txt')
}).then((msg) => {
    console.log(msg) // echos contents of text3.txt
})
Nach dem Login kopieren

Um die wichtigsten Punkte von JavaScript-Promises zu beherrschen, wie z. B. Promise-Verkettung und parallele Ausführung Promise, bitte lesen Sie „Anfängerleitfaden für Promises“.

3) Asynchrone JavaScript-Funktionen

Zusätzlich zu JavaScript Promise schreiben asynchrone Funktionen die traditionelle asynchrone Codestruktur weiter um, um sie besser lesbar zu machen. Immer wenn ich Kunden Code mit asynchronen Programmierfunktionen zeige, ist die erste Reaktion immer Überraschung, gefolgt von Neugier, zu verstehen, wie er funktioniert.

Eine asynchrone Funktion besteht aus zwei Teilen:

1) Eine reguläre Funktion mit dem Präfix async

async function fetchdata(url){
    // Do something
    // Always returns a promise
}
Nach dem Login kopieren

2) Innerhalb einer asynchrone Funktion (Async-Funktion), verwenden Sie das Schlüsselwort await, um die asynchrone Betriebsfunktion aufzurufen

Ein Beispiel sagt mehr als tausend Worte. Das Folgende ist ein Promise, das basierend auf dem obigen Beispiel umgeschrieben wurde, um stattdessen Async-Funktionen zu verwenden:

function getasync(url) { // same as original function
    return new Promise((resolve, reject) => {
        const xhr = new XMLHttpRequest()
        xhr.open("GET", url)
        xhr.onload = () => resolve(xhr.responseText)
        xhr.onerror = () => reject(xhr.statusText)
        xhr.send()
    })
}

async function fetchdata(){ // main Async function
    var text1 = await getasync('test.txt')
    console.log(text1)
    var text2 = await getasync('test2.txt')
    console.log(text2)
    var text3 = await getasync('test3.txt')
    console.log(text3)
    return "Finished"
}

fetchdata().then((msg) =>{
    console.log(msg) // logs "finished"
})
Nach dem Login kopieren

Wenn das obige Beispiel ausgeführt wird, werden „test.txt“, „test2.txt“ ausgegeben ", "test3 .txt" und schließlich "Fertig".

Wie Sie sehen können, behandeln wir in der asynchronen Funktion die asynchrone Funktion getasync() als synchronen Funktionsaufruf – es gibt keine then()-Methode oder Rückruffunktion, um den nächsten Schritt zu benachrichtigen. Immer wenn das Schlüsselwort await angetroffen wird, wird die Ausführung angehalten, bis getasync() aufgelöst ist, bevor zur nächsten Zeile in der asynchronen Funktion übergegangen wird. Das Ergebnis ist das gleiche wie bei einer rein Promise-basierten Methode, bei der eine Reihe von then-Methoden verwendet werden.

要掌握异步函数,包括如何 await 并行执行函数,请阅读 “Introduction to JavaScript Async Functions- Promises simplified”

4) JavaScript 解构

除了箭头函数,这是我每天使用最多的 ES6 功能。ES6 解构并非一个新功能,而是一个新的赋值语法,可以让您快速解压缩对象属性和数组中的值,并将它们分配给各个变量。

var profile = {name:'George', age:39, hobby:'Tennis'}
var {name, hobby} = profile // destructure profile object
console.log(name) // "George"
console.log(hobby) // "Tennis"
Nach dem Login kopieren

这里我用解构快速提取 profile 对象的 namehobby 属性 。

使用别名,你可以使用与你正在提取值的对象属性不同的变量名:

var profile = {name:'George', age:39, hobby:'Tennis'}
var {name:n, hobby:h} = profile // destructure profile object
console.log(n) // "George"
console.log(h) // "Tennis"
Nach dem Login kopieren

嵌套对象解构

解构也可以与嵌套对象一起工作,我一直使用它来快速解开来自复杂的JSON请求的值:

var jsondata = {
    title: 'Top 5 JavaScript ES6 Features',
    Details: {
        date: {
            created: '2017/09/19',
            modified: '2017/09/20',
        },
        Category: 'JavaScript',
    },
    url: '/top-5-es6-features/'
};

var {title, Details: {date: {created, modified}}} = jsondata
console.log(title) // 'Top 5 JavaScript ES6 Features'
console.log(created) // '2017/09/19'
console.log(modified) // '2017/09/20'
Nach dem Login kopieren

解构数组

数组的解构与在对象上的工作方式类似,除了左边的花括号使用方括号代替:

var soccerteam = ['George', 'Dennis', 'Sandy']
var [a, b] = soccerteam // destructure soccerteam array
console.log(a) // "George"
console.log(b) // "Dennis"
Nach dem Login kopieren

你可以跳过某些数组元素,通过使用逗号(,):

var soccerteam = ['George', 'Dennis', 'Sandy']
var [a,,b] = soccerteam // destructure soccerteam array
console.log(a) // "George"
console.log(b) // "Sandy"
Nach dem Login kopieren

对我而言,解构消除了传统方式提取和分配对象属性和数组值的所有摩擦。要充分掌握ES6解构的复杂性和潜力,请阅读”Getting to Grips with ES6: Destructuring“.

5) 默认和剩余参数(Default and Rest Parameters)

最后,我最想提出的ES6的两个特性是处理函数参数。几乎我们在JavaScript中创建的每个函数都接受用户数据,所以这两个特性在一个月中不止一次地派上用场。

默认参数(Default Parameters)

我们都使用过一下模式来创建具有默认值的参数:

function getarea(w,h){
  var w = w || 10
  var h = h || 15
  return w * h
}
Nach dem Login kopieren

有了ES6对默认参数的支持,显式定义的参数值的日子已经结束:

function getarea(w=10, h=15){
  return w * h
}
getarea(5) // returns 75
Nach dem Login kopieren

关于 ES6 默认参数的更多详情 在这.

剩余参数(Rest Parameters)

ES6中的 Rest Parameters 使得将函数参数转换成数组的操作变得简单。

function addit(...theNumbers){
  // get the sum of the array elements
    return theNumbers.reduce((prevnum, curnum) => prevnum + curnum, 0) 
}

addit(1,2,3,4) // returns 10
Nach dem Login kopieren

通过在命名参数前添加3个点 ...,在该位置和之后输入到函数中的参数将自动转换为数组。

没有 Rest Parameters, 我们不得不做一些复杂的操作比如 手动将参数转换为数组 :

function addit(theNumbers){
    // force arguments object into array
    var numArray = Array.prototype.slice.call(arguments) 
    return numArray.reduce((prevnum, curnum) => prevnum + curnum, 0)
}

addit(1,2,3,4) // returns 10
Nach dem Login kopieren

Rest parameters 只能应用于函数的参数的一个子集,就像下面这样,它只会将参数从第二个开始转换为数组:

function f1(date, ...lucknumbers){
    return 'The Lucky Numbers for ' + date + ' are: ' + lucknumbers.join(', ')
}

alert( f1('2017/09/29', 3, 32, 43, 52) ) // alerts "The Lucky Numbers for 2017/09/29 are 3,32,43,52"
Nach dem Login kopieren

对于 ES6 中 Rest Parameters 完整规范,看这里.

结论

你同意我所说的 ES6 特性的前五名吗?哪个是你最常用的,请在评论区和大家分享。

推荐教程:《javascript基础教程

Das obige ist der detaillierte Inhalt vonEin Blick auf die fünf wichtigsten Funktionen von JavaScript ES6. 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

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

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)

So implementieren Sie ein Online-Spracherkennungssystem mit WebSocket und JavaScript So implementieren Sie ein Online-Spracherkennungssystem mit WebSocket und JavaScript Dec 17, 2023 pm 02:54 PM

So implementieren Sie mit WebSocket und JavaScript ein Online-Spracherkennungssystem. Einführung: Mit der kontinuierlichen Weiterentwicklung der Technologie ist die Spracherkennungstechnologie zu einem wichtigen Bestandteil des Bereichs der künstlichen Intelligenz geworden. Das auf WebSocket und JavaScript basierende Online-Spracherkennungssystem zeichnet sich durch geringe Latenz, Echtzeit und plattformübergreifende Eigenschaften aus und hat sich zu einer weit verbreiteten Lösung entwickelt. In diesem Artikel wird erläutert, wie Sie mit WebSocket und JavaScript ein Online-Spracherkennungssystem implementieren.

WebSocket und JavaScript: Schlüsseltechnologien zur Implementierung von Echtzeitüberwachungssystemen WebSocket und JavaScript: Schlüsseltechnologien zur Implementierung von Echtzeitüberwachungssystemen Dec 17, 2023 pm 05:30 PM

WebSocket und JavaScript: Schlüsseltechnologien zur Realisierung von Echtzeit-Überwachungssystemen Einführung: Mit der rasanten Entwicklung der Internet-Technologie wurden Echtzeit-Überwachungssysteme in verschiedenen Bereichen weit verbreitet eingesetzt. Eine der Schlüsseltechnologien zur Erzielung einer Echtzeitüberwachung ist die Kombination von WebSocket und JavaScript. In diesem Artikel wird die Anwendung von WebSocket und JavaScript in Echtzeitüberwachungssystemen vorgestellt, Codebeispiele gegeben und deren Implementierungsprinzipien ausführlich erläutert. 1. WebSocket-Technologie

So implementieren Sie ein Online-Reservierungssystem mit WebSocket und JavaScript So implementieren Sie ein Online-Reservierungssystem mit WebSocket und JavaScript Dec 17, 2023 am 09:39 AM

So implementieren Sie ein Online-Reservierungssystem mit WebSocket und JavaScript. Im heutigen digitalen Zeitalter müssen immer mehr Unternehmen und Dienste Online-Reservierungsfunktionen bereitstellen. Es ist von entscheidender Bedeutung, ein effizientes Online-Reservierungssystem in Echtzeit zu implementieren. In diesem Artikel wird erläutert, wie Sie mit WebSocket und JavaScript ein Online-Reservierungssystem implementieren, und es werden spezifische Codebeispiele bereitgestellt. 1. Was ist WebSocket? WebSocket ist eine Vollduplex-Methode für eine einzelne TCP-Verbindung.

Verwendung von JavaScript und WebSocket zur Implementierung eines Echtzeit-Online-Bestellsystems Verwendung von JavaScript und WebSocket zur Implementierung eines Echtzeit-Online-Bestellsystems Dec 17, 2023 pm 12:09 PM

Einführung in die Verwendung von JavaScript und WebSocket zur Implementierung eines Online-Bestellsystems in Echtzeit: Mit der Popularität des Internets und dem Fortschritt der Technologie haben immer mehr Restaurants damit begonnen, Online-Bestelldienste anzubieten. Um ein Echtzeit-Online-Bestellsystem zu implementieren, können wir JavaScript und WebSocket-Technologie verwenden. WebSocket ist ein Vollduplex-Kommunikationsprotokoll, das auf dem TCP-Protokoll basiert und eine bidirektionale Kommunikation zwischen Client und Server in Echtzeit realisieren kann. Im Echtzeit-Online-Bestellsystem, wenn der Benutzer Gerichte auswählt und eine Bestellung aufgibt

Einfaches JavaScript-Tutorial: So erhalten Sie den HTTP-Statuscode Einfaches JavaScript-Tutorial: So erhalten Sie den HTTP-Statuscode Jan 05, 2024 pm 06:08 PM

JavaScript-Tutorial: So erhalten Sie HTTP-Statuscode. Es sind spezifische Codebeispiele erforderlich. Vorwort: Bei der Webentwicklung ist häufig die Dateninteraktion mit dem Server erforderlich. Bei der Kommunikation mit dem Server müssen wir häufig den zurückgegebenen HTTP-Statuscode abrufen, um festzustellen, ob der Vorgang erfolgreich ist, und die entsprechende Verarbeitung basierend auf verschiedenen Statuscodes durchführen. In diesem Artikel erfahren Sie, wie Sie mit JavaScript HTTP-Statuscodes abrufen und einige praktische Codebeispiele bereitstellen. Verwenden von XMLHttpRequest

JavaScript und WebSocket: Aufbau eines effizienten Echtzeit-Wettervorhersagesystems JavaScript und WebSocket: Aufbau eines effizienten Echtzeit-Wettervorhersagesystems Dec 17, 2023 pm 05:13 PM

JavaScript und WebSocket: Aufbau eines effizienten Echtzeit-Wettervorhersagesystems Einführung: Heutzutage ist die Genauigkeit von Wettervorhersagen für das tägliche Leben und die Entscheidungsfindung von großer Bedeutung. Mit der Weiterentwicklung der Technologie können wir genauere und zuverlässigere Wettervorhersagen liefern, indem wir Wetterdaten in Echtzeit erhalten. In diesem Artikel erfahren Sie, wie Sie mit JavaScript und WebSocket-Technologie ein effizientes Echtzeit-Wettervorhersagesystem aufbauen. In diesem Artikel wird der Implementierungsprozess anhand spezifischer Codebeispiele demonstriert. Wir

So erhalten Sie auf einfache Weise HTTP-Statuscode in JavaScript So erhalten Sie auf einfache Weise HTTP-Statuscode in JavaScript Jan 05, 2024 pm 01:37 PM

Einführung in die Methode zum Abrufen des HTTP-Statuscodes in JavaScript: Bei der Front-End-Entwicklung müssen wir uns häufig mit der Interaktion mit der Back-End-Schnittstelle befassen, und der HTTP-Statuscode ist ein sehr wichtiger Teil davon. Das Verstehen und Abrufen von HTTP-Statuscodes hilft uns, die von der Schnittstelle zurückgegebenen Daten besser zu verarbeiten. In diesem Artikel wird erläutert, wie Sie mithilfe von JavaScript HTTP-Statuscodes erhalten, und es werden spezifische Codebeispiele bereitgestellt. 1. Was ist ein HTTP-Statuscode? HTTP-Statuscode bedeutet, dass der Dienst den Dienst anfordert, wenn er eine Anfrage an den Server initiiert

So verwenden Sie insertBefore in Javascript So verwenden Sie insertBefore in Javascript Nov 24, 2023 am 11:56 AM

Verwendung: In JavaScript wird die Methode insertBefore() verwendet, um einen neuen Knoten in den DOM-Baum einzufügen. Diese Methode erfordert zwei Parameter: den neuen Knoten, der eingefügt werden soll, und den Referenzknoten (d. h. den Knoten, an dem der neue Knoten eingefügt wird).

See all articles