国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
3、模板字串" >3、模板字串
##3.1 字串新方法(補充)" >##3.1 字串新方法(補充)
4、解構(gòu)表達式" >4、解構(gòu)表達式
4.1 陣列解構(gòu)%%PRE_BLOCK_6%% " > 4.1 陣列解構(gòu)%%PRE_BLOCK_6%%
4.2 物件解構(gòu)" >4.2 物件解構(gòu)
5、物件面" >5、物件面
5.1 Map和Set" >5.1 Map和Set
5.1.1 Map" >5.1.1 Map
5.1.2 Set" >5.1.2 Set
5.3 數(shù)組的新方法" >5.3 數(shù)組的新方法
5.3.1 Array.from()方法" >5.3.1 Array.from()方法
5.3.2 includes()方法" >5.3.2 includes()方法
5.3.3 map()、filter() 方法" >5.3.3 map()、filter() 方法
5.3.4 forEach()方法" >5.3.4 forEach()方法
5.3.4 find()方法" >5.3.4 find()方法
5.3.6 some()、every() 方法" >5.3.6 some()、every() 方法
5.4 object的新方法" >5.4 object的新方法
5.4.1 Object.is()" >5.4.1 Object.is()
5.4.2 Object.assign()" >5.4.2 Object.assign()
5.4.3 Object.keys()、Object.values()、Object.entries()" >5.4.3 Object.keys()、Object.values()、Object.entries()
5.5 對象聲明簡寫" >5.5 對象聲明簡寫
5.6 …(對象擴展符)" >5.6 …(對象擴展符)
6、函數(shù)方面" >6、函數(shù)方面
6.1 參數(shù)默認值" >6.1 參數(shù)默認值
6.2 箭頭函數(shù)" >6.2 箭頭函數(shù)
6.3 箭頭函數(shù)和普通函數(shù)最大的區(qū)別在于其內(nèi)部this永遠指向其父級對象的this。(重點)" >6.3 箭頭函數(shù)和普通函數(shù)最大的區(qū)別在于其內(nèi)部this永遠指向其父級對象的this。(重點)
7、class(類)" >7、class(類)
8、promise和proxy" >8、promise和proxy
9、模塊化" >9、模塊化
首頁 web前端 前端問答 es6新功能都有哪些

es6新功能都有哪些

Jan 06, 2023 pm 02:15 PM
es6

es6新特性有:1、let和const;2、symbol;3、模板字串;4、解構(gòu)表達式;5、物件方面,如Map和Set;6、函數(shù)方面,如參數(shù)預(yù)設(shè)值和箭頭函數(shù);7、class關(guān)鍵字;8、promise和proxy;9、模組化;10、運算符。

es6新功能都有哪些

#本教學操作環(huán)境:Windows10系統(tǒng)、ECMAScript 6版、Dell G3電腦。

es6新功能都有哪些?

ES6新特性

#1、let和const

前面講過:https: //m.miracleart.cn/js-tutorial-499866.html

2、symbol

Symbol是ES6中引入的一種新的基本資料類型,用來表示一個獨一無二的值,不能與其他資料類型運算。它是JavaScript中的第七種資料型別,與undefined、null、Number(數(shù)值)、String(字串)、Boolean(布林值)、Object(物件)並列。

你可以這樣建立一個Symbol值:

const a = Symbol();
console.log(a);  //Symbol()

//因為Symbol是基本數(shù)據(jù)類型,而不是對象,不能 new 。
const a = new Symbol();//報錯,Symbol is not a constructor

使用Symbol()創(chuàng)建一個Symbol類型的值並賦值給a變數(shù)後,你就得到了一個在記憶體中獨一無二的值?,F(xiàn)在除了透過變數(shù)a,任何人在任何作用域內(nèi)都無法重新建立出這個值

const a = Symbol();const b = Symbol();

記憶體解構(gòu)圖
es6新功能都有哪些

3、模板字串

  • 在ES6之前,處理模板字串:
    透過「\」和「 」來建構(gòu)模板
  • 對ES6來說:
    ${}來界定;
    反引號(``)直接搞定;
<script>
      url="xxxxxx"
       // es6之前
       let html="<div>"+
                  " <a>"+url+"</a>"+
               "</div>";
		//es6
       let eshtml=`<div>
                   <a>${url}</a>
               </div>`</script>

非常好用

##3.1 字串新方法(補充)

  • includes()判斷字串是否包含參數(shù)字串,傳回boolean值。
  • startsWith() / endsWith(),判斷字串是否以參數(shù)字串開頭或結(jié)尾。傳回boolean值。這兩個方法可以有第二個參數(shù),一個數(shù)字,表示開始尋找的位置。
  • let str = &#39;blue,red,orange,white&#39;;str.includes(&#39;blue&#39;);
    //truestr.startsWith(&#39;blue&#39;);
    //true
    str.endsWith(&#39;blue&#39;);
    //false
  • repeat()方法依指定次數(shù)傳回一個新的字串。
  • console.log(&#39;hello&#39;.repeat(2));   
    //&#39;hellohello&#39;
  • padStart()/padEnd(),用參數(shù)字串按給定長度從前面或後面補全字串,傳回新字串。
  • let arr = &#39;hell&#39;;console.log(arr.padEnd(5,&#39;o&#39;));  
    //&#39;hello&#39;console.log(arr.padEnd(6,&#39;o&#39;));  
    //&#39;helloo&#39;console.log(arr.padEnd(6));  
    //&#39;hell  &#39;,如果沒有指定將用空格代替
    console.log(arr.padStart(5,&#39;o&#39;));  
    //&#39;ohell&#39;

4、解構(gòu)表達式

解構(gòu)賦值是對賦值運算子的擴充。它是一種針對

數(shù)組物件進行模式匹配,然後對其中的變數(shù)進行賦值。
字串、以及ES6新增的MapSet# 都可以使用解構(gòu)表達式

4.1 陣列解構(gòu)
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]

4.2 物件解構(gòu)

物件的解構(gòu)賦值和陣列類似,不過左邊的變數(shù)名稱需要使用物件的屬性名,並且用大括號{ }而非中括號[]

let obj = { 
	name: "ren", 
	age: 12, 
	sex: "male" };let { name, age, sex } = obj;console.log(name, age, sex); 
	//&#39;ren&#39; 12 &#39;male&#39;let { name: myName, age: myAge, sex: mySex } = obj; 
	//自定義變量名console.log(myName, myAge, mySex); 
	//&#39;ren&#39; 12 &#39;male&#39;

5、物件面

5.1 Map和Set

Map和Set屬於es6新增加的物件

5.1.1 Map

Map物件用來儲存鍵值對,任何值JavaScript支援的值都可以當作一個鍵(key)或者一個值(value)。

與物件不同的是

  • object的鍵只能是

    字串或ES6的symbol值,而Map可以是任何值。

  • Map物件有一個

    size屬性,儲存了鍵值對的個數(shù),而object物件沒有類似屬性。

  • let myMap = new Map([[&#39;name&#39;,&#39;ren&#39;],[&#39;age&#39;,12]]);console.log(myMap);  
    //{&#39;name&#39;=>&#39;ren&#39;,&#39;age&#39;=>12}myMap.set(&#39;sex&#39;,&#39;male&#39;);console.log(myMap);  
    //{&#39;name&#39;=>&#39;ren&#39;,&#39;age&#39;=>12,&#39;sex&#39;=>&#39;male&#39;}console.log(myMap.size);  
    //3myMap.get(&#39;name&#39;);  //&#39;ren&#39;myMap.has(&#39;age&#39;); 
     //truemyMap.delete(&#39;age&#39;);  
     //truemyMap.has(&#39;age&#39;);  
     //falsemyMap.get(&#39;age&#39;);  
     //undefined

5.1.2 Set

可以理解為後端的Set集合物件

Set物件和Map物件類似,但它存儲不是鍵值對。類似數(shù)組,但它的
每個元素都是唯一的。

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}

利用Set物件

唯一性的特點,可以輕鬆實現(xiàn)數(shù)組的去重#

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ù)組的新方法

  • 新增的方法有:
  1. Array.from()是內(nèi)置對象Array的方法,實例數(shù)組不能調(diào)用
  2. includes() 參數(shù):數(shù)值 -------- 返回值:true/false
  3. map()filter() 參數(shù):函數(shù)-------- 返回值:數(shù)組
  4. forEach() 參數(shù):函數(shù)-------- 返回值:undefined
  5. find() 參數(shù):函數(shù)-------- 返回值:數(shù)值
  6. some()、every() 參數(shù):函數(shù)-------- 返回值:true/false

5.3.1 Array.from()方法

Array.from()方法可以將可迭代對象轉(zhuǎn)換為新的數(shù)組。

  • 函數(shù)可接受3個參數(shù)(后兩個參數(shù)可以沒有):
    • 第一個表示將被轉(zhuǎn)換的可迭代對象(如果只有一個參數(shù)就是把形參轉(zhuǎn)變成數(shù)組)
    • 第二個是回調(diào)函數(shù),將對每個數(shù)組元素應(yīng)用該回調(diào)函數(shù),然后返回新的值到新數(shù)組,
    • 第三個是回調(diào)函數(shù)內(nèi)this的指向。
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()方法

參數(shù):數(shù)值 -------- 返回值:true/false
includes()方法------是查看數(shù)組中是否存在這個元素,存在就返回true,不存在就返回false

let arr = [1,33,44,22,6,9]let ary = arr.includes(22)console.log(ary)

5.3.3 map()、filter() 方法

參數(shù):函數(shù)-------- 返回值:數(shù)組
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()方法

參數(shù):函數(shù)-------- 返回值:undefined

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()方法

參數(shù):函數(shù)-------- 返回值:數(shù)值

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() 方法

參數(shù):函數(shù)-------- 返回值: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的新方法

在 ES6 中,添加了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()方法用于將所有可枚舉屬性的值從一個或多個源對象分配到目標對象,并返回目標對象。------難理解看實例
    對象合并
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()

  • Object.keys() 返回對象所有屬性
  • Object.values() 返回對象所有屬性值
  • Object.entries() 返回多個數(shù)組,每個數(shù)組是 key–value
    不解釋直接看例子
<script>
	let person = {
		name: "admin",
		age: 12,
		language: ["java", "js", "css"],
	};
	console.log(Object.keys(person)); //[ &#39;name&#39;, &#39;age&#39;, &#39;language&#39; ]
	
	console.log(Object.values(person)); //[ &#39;admin&#39;, 12, [ &#39;java&#39;, &#39;js&#39;, &#39;css&#39; ] ]
	
	console.log(Object.entries(person));    /* [
	                                                     ["name", "admin"],
	                                                     ["age", 12],
	                                                     ["language", ["java", "js", "css"]],
	                                                 ]; */</script>

5.5 對象聲明簡寫

<script>
			
      let name =&#39;admin&#39;
      let age = 20
      //es6之前
      // let person={
      //     name:name,
      //     age:age
      // }

      //es6  聲明對象時的屬性名與引用的變量名相同就可以省略
      let person={
          name,
          age      }</script>

5.6 …(對象擴展符)

  1. 拷貝
<script>
	let person={
		name: "admin",
		age: 12,
		wife:"迪麗熱巴"
	}
	
	let person2={...person}
	
	console.log(person2===person);//false
	console.log(person2);
	//{name: &#39;admin&#39;, age: 12, wife: "迪麗熱巴"}
	</script>
  1. 合并對象
<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ù)默認值

<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ù)

箭頭函數(shù)實現(xiàn)了一種更加簡潔的書寫方式。箭頭函數(shù)內(nèi)部沒有arguments,也沒有prototype屬性,所以不能用new關(guān)鍵字調(diào)用箭頭函數(shù)。

let add = (a,b) => {
    return a+b;}let print = () => {
    console.log(&#39;hi&#39;);}let fn = a => a * a;
    //當只有一個參數(shù)時,括號可以省略,函數(shù)體只有單行return語句時,大括號也可以省略。

6.3 箭頭函數(shù)和普通函數(shù)最大的區(qū)別在于其內(nèi)部this永遠指向其父級對象的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ù)。

  1. 創(chuàng)建類
<script>
	class person {
		//關(guān)鍵字聲明方式
		constructor(name) {
                  this.name=name              }           
		say() {
			console.log("hello");
		}
	}

	var p = new person(&#39;p&#39;);
	p.say(); //&#39;hello&#39;
	console.log(p.name);</script>
  1. 類的繼承
    類的繼承通過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;   //&#39;admin&#39;
	student.sex;    //&#39;male&#39;
	student.say(); //&#39;ren:12&#39;</script>

8、promise和proxy

講不清楚,等我學會了,后面在講

9、模塊化

  1. 導入

ES6使用關(guān)鍵字 import 導入模塊(文件),有兩種常用的方式:

import ‘模塊名稱’  from  ‘路徑’;import  ‘路徑’;
  1. 導出

ES6 通過 export 和export default 導出模塊。

let name = &#39;ren&#39;,age = 12;export {name,age};
//注意:變量需要用大括號包裹,然后才能向外輸出

模塊化優(yōu)點

  1.防止命名沖突
  2.復(fù)用性強

10、運算符

... 擴展運算符
可選鏈 ?.
函數(shù)綁定運算符::


若本文對你有幫助 點個贊 點個關(guān)注


總結(jié)——ES6思維導圖

es6新功能都有哪些

推薦學習:《react視頻教程

以上是es6新功能都有哪些的詳細內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔相應(yīng)的法律責任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Laravel 教程
1601
29
PHP教程
1502
276
ES6怎麼求數(shù)組反轉(zhuǎn) ES6怎麼求數(shù)組反轉(zhuǎn) Oct 26, 2022 pm 06:19 PM

在ES6中,可以利用數(shù)組物件的reverse()方法來實現(xiàn)數(shù)組反轉(zhuǎn),該方法用於顛倒數(shù)組中元素的順序,將最後一個元素放在第一位,而第一個元素放在最後,語法「array.reverse()」。 reverse()方法會修改原始數(shù)組,如果不想修改需要配合擴充運算子「...」使用,語法「[...array].reverse()」。

async是es6還是es7的 async是es6還是es7的 Jan 29, 2023 pm 05:36 PM

async是es7的。 async和await是ES7中新增內(nèi)容,是對於非同步操作的解決方案;async/await可以說是co模組和生成器函數(shù)的語法糖,用更清晰的語意解決js非同步程式碼。 async顧名思義是「非同步」的意思,async用於聲明一個函數(shù)是異步的;async和await有一個嚴格規(guī)定,兩者都離不開對方,且await只能寫在async函數(shù)中。

小程式為什麼要將es6轉(zhuǎn)es5 小程式為什麼要將es6轉(zhuǎn)es5 Nov 21, 2022 pm 06:15 PM

為了瀏覽器相容。 ES6作為JS的新規(guī)範,加入了許多新的語法和API,但現(xiàn)代瀏覽器對ES6新特性支援不高,所以需將ES6程式碼轉(zhuǎn)換為ES5程式碼。在微信web開發(fā)者工具中,會預(yù)設(shè)使用babel將開發(fā)者ES6語法程式碼轉(zhuǎn)換為三端都能很好支援的ES5的程式碼,幫助開發(fā)者解決環(huán)境不同所帶來的開發(fā)問題;只需要在專案中配置勾選好「ES6轉(zhuǎn)ES5」選項即可。

es6怎麼找出2個數(shù)組中不同項 es6怎麼找出2個數(shù)組中不同項 Nov 01, 2022 pm 06:07 PM

步驟:1、將兩個陣列分別轉(zhuǎn)換為set類型,語法「newA=new Set(a);newB=new Set(b);」;2、利用has()和filter()求差集,語法“ new Set([...newA].filter(x =>!newB.has(x)))”,差集元素會被包含在一個set集合中返回;3、利用Array.from將集合轉(zhuǎn)為數(shù)組類型,語法“Array.from(集合)”。

es5和es6怎麼實現(xiàn)陣列去重 es5和es6怎麼實現(xiàn)陣列去重 Jan 16, 2023 pm 05:09 PM

es5中可以利用for語句和indexOf()函數(shù)來實現(xiàn)數(shù)組去重,語法“for(i=0;i<數(shù)組長度;i++){a=newArr.indexOf(arr[i]);if(a== -1){...}}」。在es6中可以利用擴充運算子、Array.from()和Set來去重;需要先將陣列轉(zhuǎn)為Set物件來去重,然後利用擴充運算子或Array.from()函數(shù)來將Set物件轉(zhuǎn)回數(shù)組即可。

es6暫時性死區(qū)是什麼意思 es6暫時性死區(qū)是什麼意思 Jan 03, 2023 pm 03:56 PM

在es6中,暫時性死區(qū)是語法錯誤,是指let和const命令使區(qū)塊形成封閉的作用域。在程式碼區(qū)塊內(nèi),使用let/const指令宣告變數(shù)之前,變數(shù)都是不可用的,在變數(shù)宣告之前屬於該變數(shù)的「死區(qū)」;這在語法上,稱為「暫時性死區(qū)」。 ES6規(guī)定暫時性死區(qū)和let、const語句不出現(xiàn)變量提升,主要是為了減少運行時錯誤,防止在變量聲明前就使用這個變量,從而導致意料之外的行為。

require是es6語法嗎 require是es6語法嗎 Oct 21, 2022 pm 04:09 PM

不是,require是CommonJS規(guī)範的模組化語法;而es6規(guī)範的模組化語法是import。 require是運行時加載,import是編譯時加載;require可以寫在程式碼的任意位置,import只能寫在文件的最頂端且不可在條件語句或函數(shù)作用域中使用;require運行時才引入模組的屬性所以效能相對較低,import編譯時引入模組的屬性所所以效能稍高。

es6怎麼判斷陣列裡總共有多少項 es6怎麼判斷陣列裡總共有多少項 Jan 18, 2023 pm 07:22 PM

在es6中,可以利用array物件的length屬性來判斷數(shù)組裡總共有多少項,即取得數(shù)組中元素的個數(shù);該屬性可傳回數(shù)組中元素的數(shù)組,只需要使用「array.length」語句即可傳回表示數(shù)組物件的元素個數(shù)的數(shù)值,也就是長度值。

See all articles