padStart()/padEnd()
, verwenden Sie den Parameter string, um die Zeichenfolge entsprechend der angegebenen L?nge von vorne oder hinten zu vervollst?ndigen und eine neue Zeichenfolge zurückzugeben. " >%%PRE_BLOCK_6%% padStart()/padEnd()
, verwenden Sie den Parameter string, um die Zeichenfolge entsprechend der angegebenen L?nge von vorne oder hinten zu vervollst?ndigen und eine neue Zeichenfolge zurückzugeben.
Zu den neuen Funktionen von ES6 geh?ren: 1. let und const; 3. Template-String; 5. Objektaspekte, wie z. B. Map und Set; und Pfeile Funktion; 7. Klassenschlüsselwort; 8. Versprechen und Proxy 9. Modularisierung;
Die Betriebsumgebung dieses Tutorials: Windows 10-System, ECMAScript Version 6, Dell G3-Computer.
Was sind die neuen Funktionen von es6?
ES6 neue Funktionen
1, let und const
Wie bereits erw?hnt: http://m.miracleart.cn/js-tutorial-499866.html
2, Symbol
Symbol ist ein neuer grundlegender Datentyp, der in ES6 eingeführt wurde. Er wird zur Darstellung eines eindeutigen Werts verwendet und kann nicht mit anderen Datentypen verwendet werden. Es ist neben undefiniert, null, Zahl, Zeichenfolge, Boolean und Objekt der siebte Datentyp in JavaScript.
Sie k?nnen einen Symbolwert wie folgt erstellen:
const a = Symbol(); console.log(a); //Symbol() //因為Symbol是基本數(shù)據(jù)類型,而不是對象,不能 new 。 const a = new Symbol();//報錯,Symbol is not a constructor
Nachdem Sie Symbol() verwendet haben, um einen Wert vom Typ Symbol zu erstellen und ihn einer Variablen zuzuweisen, erhalten Sie einen eindeutigen Wert im Speicher. Au?er durch die Variable a kann niemand diesen Wert in irgendeinem Bereich neu erstellen Build-Vorlagen
Für ES6:
Verwenden Sie ${}
zum Definieren; Backticks
(``)
, um es direkt zu tun;
const a = Symbol();const b = Symbol();Sehr einfach zu verwenden
3.1 Neue String-Methode (erg?nzend)
includes()
Bestimmt, ob der String den Parameter string enth?lt und gibt einen booleschen Wert zurück.<script> url="xxxxxx" // es6之前 let html="<div>"+ " <a>"+url+"</a>"+ "</div>"; //es6 let eshtml=`<div> <a>${url}</a> </div>`</script>
${}
來界定;
反引號(``)
直接搞定;
startsWith() / endWith()
, bestimmen Sie, ob die Zeichenfolge mit der Parameterzeichenfolge beginnt oder endet. Gibt einen booleschen Wert zurück. Diese beiden Methoden k?nnen einen zweiten Parameter haben, eine Zahl, die die Position angibt, an der die Suche gestartet werden soll. let str = 'blue,red,orange,white';str.includes('blue'); //truestr.startsWith('blue'); //true str.endsWith('blue'); //false
非常好用
3.1 字符串新方法(補充)
includes()
判斷字符串是否包含參數(shù)字符串,返回boolean值。startsWith() / endsWith()
,判斷字符串是否以參數(shù)字符串開頭或結(jié)尾。返回boolean值。這兩個方法可以有第二個參數(shù),一個數(shù)字,表示開始查找的位置。
console.log('hello'.repeat(2)); //'hellohello'
repeat()
方法按指定次數(shù)返回一個新的字符串。
let arr = 'hell';console.log(arr.padEnd(5,'o')); //'hello'console.log(arr.padEnd(6,'o')); //'helloo'console.log(arr.padEnd(6)); //'hell ',如果沒有指定將用空格代替 console.log(arr.padStart(5,'o')); //'ohell'
padStart()/padEnd()
Die Methode
repeat()
gibt so oft eine neue Zeichenfolge zurück, wie angegeben. let [a,b,c] = [1,2,3];console.log(a,b,c); //1,2,3
let [a,b,c] = [1,,3];console.log(a,b,c); //1,undefined,3
let [a,,b] = [1,2,3];console.log(a,b);//1,3
let [a,..b] = [1,2,3];
//...是剩余運算符,表示賦值運算符右邊除第一個值外剩余的都賦值給b
console.log(a,b);
//1,[2,3]
padStart()/padEnd()
, verwenden Sie den Parameter string, um die Zeichenfolge entsprechend der angegebenen L?nge von vorne oder hinten zu vervollst?ndigen und eine neue Zeichenfolge zurückzugeben.
rrree 4. Destrukturierender Ausdruck
Destrukturierende Zuweisung ist eine Erweiterung des Zuweisungsoperators. Es handelt sich um einen Mustervergleich für ein Array oder ein Objekt und weist dann den darin enthaltenen Variablen Werte zu. String
Map und Set
von ES6 k?nnen alle Destrukturierungsausdrücke verwenden. 4.1 Array-Destrukturierung ?hnlich wie bei Arrays , aber der Variablenname auf der linken Seite muss den Attributnamen des Objekts verwenden und geschweifte Klammern {} anstelle von eckigen Klammern []let obj = {
name: "ren",
age: 12,
sex: "male" };let { name, age, sex } = obj;console.log(name, age, sex);
//'ren' 12 'male'let { name: myName, age: myAge, sex: mySex } = obj;
//自定義變量名console.log(myName, myAge, mySex);
//'ren' 12 'male'
5. Objektaspekt5.1 Karte und Satz
Karte und Set wurden neu in es6 hinzugefügt. Objekt5.1.1 MapMap-Objekt wird zum Speichern von Schlüssel-Wert-Paaren verwendet. Jeder von JavaScript unterstützte Wert kann als Schlüssel (Schlüssel) oder Wert (Wert) verwendet werden.
Anders als bei Objekten k?nnen die Schlüssel von
Objekt nur
Strings
- Symbolwerte von ES6 sein, w?hrend Map ein beliebiger Wert sein kann.
Map-Objekt hat ein Gr??enattribut, das die Anzahl der Schlüssel-Wert-Paare speichert, w?hrend Objektobjekt kein ?hnliches Attribut hat.
let myMap = new Map([['name','ren'],['age',12]]);console.log(myMap); //{'name'=>'ren','age'=>12}myMap.set('sex','male');console.log(myMap); //{'name'=>'ren','age'=>12,'sex'=>'male'}console.log(myMap.size); //3myMap.get('name'); //'ren'myMap.has('age'); //truemyMap.delete('age'); //truemyMap.has('age'); //falsemyMap.get('age'); //undefined
5.1.2 Set
kann als Set-Sammlungsobjekt des Backends verstanden werden
let mySet = new Set([1,2,3]);
//里面要傳一個數(shù)組,否則會報錯console.log(mySet);
//{1,2,3}mySet.add(4);console.log(mySet);
//{1,2,3,4}mySet.delete(1);
//truemySet.has(1);
//falseconsole.log(mySet);
//{2,3,4}
Mit der Einzigartigkeit
-Funktion des Set-Objekts k?nnen Sie ganz einfach eine Duplizierung des Arrays erreichen 參數(shù):數(shù)值 -------- 返回值: 參數(shù):函數(shù)-------- 返回值:數(shù)組 參數(shù):函數(shù)-------- 返回值:undefined 參數(shù):函數(shù)-------- 返回值:數(shù)值 參數(shù):函數(shù)-------- 返回值: 在 ES6 中,添加了 箭頭函數(shù)實現(xiàn)了一種更加簡潔的書寫方式。箭頭函數(shù)內(nèi)部沒有 講不清楚,等我學(xué)會了,后面在講 ES6使用關(guān)鍵字 ES6 通過 export 和export default 導(dǎo)出模塊。 模塊化優(yōu)點 若本文對你有幫助 點個贊 點個關(guān)注let arr = [1,1,2,3,4,4];let mySet = new Set(arr);
let newArr = Array.from(mySet);console.log(newArr);
//[1,2,3,4]
5.3 數(shù)組的新方法
Array.from()
是內(nèi)置對象Array的方法,實例數(shù)組不能調(diào)用includes()
參數(shù):數(shù)值 -------- 返回值:true/false
map()
、filter()
參數(shù):函數(shù)-------- 返回值:數(shù)組forEach()
參數(shù):函數(shù)-------- 返回值:undefined
find()
參數(shù):函數(shù)-------- 返回值:數(shù)值some()
、every()
參數(shù):函數(shù)-------- 返回值:true/false
5.3.1 Array.from()方法
Array.from()
方法可以將可迭代對象轉(zhuǎn)換為新的數(shù)組。let arr = [1, 2, 3];let obj = {
double(n) {
return n * 2;
}}console.log(Array.from(arr, function (n){
return this.double(n);}, obj)); // [2, 4, 6]
5.3.2 includes()方法
true/false
includes()
方法------是查看數(shù)組中是否存在這個元素,存在就返回true,不存在就返回falselet arr = [1,33,44,22,6,9]let ary = arr.includes(22)console.log(ary)
5.3.3 map()、filter() 方法
map()
方法-----要利用原數(shù)組經(jīng)過運算后的數(shù)組,或者從對象數(shù)組中拿某個屬性filter()
方法------是將符合挑選的篩選出來成為一個新數(shù)組,新數(shù)組不會影響舊數(shù)組。<script>
let arr = [1, 33, 44, 2, 6, 9];
let newarr1 = arr.filter((v) => v > 10); //newarr1-------[33, 44]
let newarr2 = arr.filter((v) => v * 2); //newarr2-------[1, 33, 44, 2, 6, 9]
let newarr3 = arr.map((v) => v > 10); //newarr3-------[false, true, true, false, false, false]
let newarr4 = arr.map((v) => v * 2); //newarr4------- [2, 66, 88, 4, 12, 18]</script>
5.3.4 forEach()方法
forEach()
方法------是循環(huán)遍歷數(shù)組中的每一項,沒有返回值find()
方法---------是查找數(shù)組中符合條件的第一個元素,直接將這個元素返回出來let arr = [1,33,44,2,6,9]let a1= []arr.forEach((v, i)=>{
if (v > 10) {
a1.push(arr[i])
} })console.log(a1) [33,44]let a2= arr.find(v => v > 10)console.log(a2)
5.3.4 find()方法
find()
方法----------是查找數(shù)組中符合條件的第一個元素,直接將這個元素返回出來let arr = [1,33,44,2,6,9]let a= arr.find(v => v > 10)console.log(a) // 33
5.3.6 some()、every() 方法
true/false
some()
方法------找到一個符合條件的就返回true
,所有都不符合返回false
。every()
方法------數(shù)組所有值都符合條件才會返回true
,有一個不符合返回false
。let arr = [1,2,3,4,6,11]let newarr = arr.some(function(v){
return v > 10})console.log(newarr)
//truelet newarr2 = arr.every(function(v){
return v > 10})console.log(newarr2)
//false
5.4 object的新方法
Object.is()
、Object.assign()
、Object.keys()
、Object.values()
、Object.entries()
等方法。5.4.1 Object.is()
Object.is()
方法用來判斷兩個值是否為同一個值,返回一個布爾類型的值。const obj1 = {};const obj2 = {};console.log(Object.is(obj1, obj2)); // falseconst obj3 = {};const value1 = obj3;const value2 = obj4;console.log(Object.is(value1, value2)); // true
5.4.2 Object.assign()
Object.assign()
方法用于將所有可枚舉屬性的值從一個或多個源對象分配到目標(biāo)對象,并返回目標(biāo)對象。------難理解看實例
對象合并const obj1 = { a: 1 };const obj2 = { b: 2 };const obj3 = { a:5 , c: 3 };//對象合并,把后面對像合并到第一個對象,對象里相同的屬性會覆蓋Object.assign(obj1, obj2, obj3);console.log(obj1); // { a: 5, b: 2 , c:3}
5.4.3 Object.keys()、Object.values()、Object.entries()
不解釋直接看例子<script>
let person = {
name: "admin",
age: 12,
language: ["java", "js", "css"],
};
console.log(Object.keys(person)); //[ 'name', 'age', 'language' ]
console.log(Object.values(person)); //[ 'admin', 12, [ 'java', 'js', 'css' ] ]
console.log(Object.entries(person)); /* [
["name", "admin"],
["age", 12],
["language", ["java", "js", "css"]],
]; */</script>
5.5 對象聲明簡寫
<script>
let name ='admin'
let age = 20
//es6之前
// let person={
// name:name,
// age:age
// }
//es6 聲明對象時的屬性名與引用的變量名相同就可以省略
let person={
name,
age }</script>
5.6 …(對象擴展符)
<script>
let person={
name: "admin",
age: 12,
wife:"迪麗熱巴"
}
let person2={...person}
console.log(person2===person);//false
console.log(person2);
//{name: 'admin', age: 12, wife: "迪麗熱巴"}
</script>
<script>
const obj1 = { a: 1 };
const obj2 = { b: 2 };
const obj3 = { a: 5, c: 3 };
let newObj ={...obj1,...obj2,...obj3}
console.log(newObj);
// { a: 5, b: 2 , c:3}
</script>
6、函數(shù)方面
6.1 參數(shù)默認(rèn)值
<script>
// es6之前
// function add(a, b) {
// if(!a) a=0
// if(!b) b=0
// return a + b;
// }
//es6
function add(a = 0, b = 0) {
return a + b;
}
let x=add();
let y=add(2);
let z=add(3, 4);
console.log(x,y,z); //x=0, y=2, z=7</script>
6.2 箭頭函數(shù)
arguments
,也沒有prototype
屬性,所以不能用new
關(guān)鍵字調(diào)用箭頭函數(shù)。let add = (a,b) => {
return a+b;}let print = () => {
console.log('hi');}let fn = a => a * a;
//當(dāng)只有一個參數(shù)時,括號可以省略,函數(shù)體只有單行return語句時,大括號也可以省略。
6.3 箭頭函數(shù)和普通函數(shù)最大的區(qū)別在于其內(nèi)部this永遠(yuǎn)指向其父級對象的this。(重點)
var age = 123;
let obj = {
age:456,
say:() => {
console.log(this.age); //this指向window
}
};obj.say(); //123
7、class(類)
class
作為對象的模板被引入ES6,你可以通過 class
關(guān)鍵字定義類。class
的本質(zhì)依然是一個函數(shù)。<script>
class person {
//關(guān)鍵字聲明方式
constructor(name) {
this.name=name }
say() {
console.log("hello");
}
}
var p = new person('p');
p.say(); //'hello'
console.log(p.name);</script>
類的繼承通過extends
關(guān)鍵字實現(xiàn)。
子類必須在constructor
中調(diào)用super()
<script>
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}
say() {
console.log(this.name + ":" + this.age);
}
}
class Student extends Person {
constructor(name, age, sex) {
super(name, age);
this.sex = sex;
}
}
var student = new Student("admin", 12, "male");
student.name; //'admin'
student.sex; //'male'
student.say(); //'ren:12'</script>
8、promise和proxy
9、模塊化
import
導(dǎo)入模塊(文件),有兩種常用的方式:import ‘模塊名稱’ from ‘路徑’;import ‘路徑’;
let name = 'ren',age = 12;export {name,age};
//注意:變量需要用大括號包裹,然后才能向外輸出
1.防止命名沖突
2.復(fù)用性強
10、運算符
...
擴展運算符
可選鏈 ?.
函數(shù)綁定運算符::
總結(jié)——ES6思維導(dǎo)圖
推薦學(xué)習(xí):《react視頻教程》
Das obige ist der detaillierte Inhalt vonWas sind die neuen Funktionen von es6?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

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

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

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)

In ES6 k?nnen Sie die Methode reverse() des Array-Objekts verwenden, um eine Array-Umkehrung zu erreichen. Diese Methode wird verwendet, um die Reihenfolge der Elemente im Array umzukehren, wobei das letzte Element zuerst und das erste Element zuletzt gesetzt wird .umkehren()". Die Methode reverse() ?ndert das ursprüngliche Array. Wenn Sie es nicht ?ndern m?chten, müssen Sie es mit dem Erweiterungsoperator ?…“ verwenden. Die Syntax lautet ?[...array].reverse()“. ".

async ist es7. Async und Wait sind neue Erg?nzungen zu ES7 und L?sungen für asynchrone Vorg?nge. Man kann sagen, dass Async/Await syntaktischer Zucker für Co-Module und Generatorfunktionen ist und js asynchronen Code mit klarerer Semantik l?st. Wie der Name schon sagt, bedeutet Async ?asynchron“. Async wird verwendet, um zu deklarieren, dass eine Funktion asynchron ist. Es gibt eine strikte Regel zwischen Async und Wait.

Aus Gründen der Browserkompatibilit?t. Als neue Spezifikation für JS fügt ES6 viele neue Syntax und API hinzu. Moderne Browser bieten jedoch keine umfassende Unterstützung für die neuen Funktionen von ES6, daher muss ES6-Code in ES5-Code konvertiert werden. In den WeChat-Webentwicklertools wird babel standardm??ig verwendet, um den ES6-Syntaxcode des Entwicklers in ES5-Code umzuwandeln, der von allen drei Terminals gut unterstützt wird und Entwicklern hilft, Entwicklungsprobleme zu l?sen, die durch unterschiedliche Umgebungen nur im Projekt verursacht werden Option ?ES6 bis ES5“.

Schritte: 1. Konvertieren Sie die beiden Arrays jeweils in Mengentypen mit der Syntax ?newA=new Set(a); newB=new Set(b);“ 2. Verwenden Sie has() und filter(), um den Differenzsatz zu finden Mit der Syntax ?new Set([...newA].filter(x =>!newB.has(x)))“ werden die Differenzmengenelemente in eine Mengensammlung aufgenommen und zurückgegeben. 3. Verwenden Sie Array. from, um die Menge in einen Array-Typ umzuwandeln, Syntax ?Array.from(collection)“.

In es5 k?nnen Sie die for-Anweisung und die Funktion indexOf() verwenden, um eine Array-Deduplizierung zu erreichen. Die Syntax ?for(i=0;i<array length;i++){a=newArr.indexOf(arr[i]);if( a== -1){...}}". In es6 k?nnen Sie den Spread-Operator Array.from() und Set verwenden, um Duplikate zu entfernen. Sie müssen zuerst das Array in ein Set-Objekt konvertieren, um Duplikate zu entfernen, und dann den Spread-Operator oder die Funktion Array.from() verwenden Konvertieren Sie das Set-Objekt zurück in ein Array.

In es6 handelt es sich bei der tempor?ren Totzone um einen Syntaxfehler, der sich auf die Befehle let und const bezieht, die dafür sorgen, dass der Block einen geschlossenen Bereich bildet. Bevor eine Variable innerhalb eines Codeblocks mit dem Befehl let/const deklariert wird, ist sie nicht verfügbar und geh?rt zur ?toten Zone“ der Variablen, bevor die Variable deklariert wird. ES6 legt fest, dass die Variablenheraufstufung in tempor?ren Totzonen und in let- und const-Anweisungen nicht erfolgt, haupts?chlich um Laufzeitfehler zu reduzieren und zu verhindern, dass die Variable vor ihrer Deklaration verwendet wird, was zu unerwartetem Verhalten führen kann.

Nein, require ist die modulare Syntax der CommonJS-Spezifikation und die modulare Syntax der es6-Spezifikation ist import. require wird zur Laufzeit geladen, und import wird zur Kompilierungszeit geladen; Wenn ?require“ ausgeführt wird, ist die Leistung relativ gering. Die beim Importieren eingeführten Eigenschaften weisen eine etwas h?here Leistung auf.

In es6 k?nnen Sie das L?ngenattribut des Array-Objekts verwenden, um zu bestimmen, wie viele Elemente sich im Array befinden. Um die Anzahl der Elemente im Array zu ermitteln, kann dieses Attribut einfach die Anzahl der Elemente im Array zurückgeben Verwenden Sie die Anweisung ?array.length“. Gibt einen Wert zurück, der die Anzahl der Elemente des Array-Objekts darstellt, also den L?ngenwert.
