1. 程式人生 > >es6的新增方法和es5陣列的一些方法

es6的新增方法和es5陣列的一些方法

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <
script> // 大多數情況下,es5的陣列方法接受的第一個引數為一個函式,並且對陣列的每個元素呼叫一次該函式。 // 該函式有三個引數:陣列元素,元素的索引和陣列本身。 // 如果有第二個引數,則第一個引數中的this指向第二個引數。 var arr= [1,2,3,4,5]; var result; //forEach()============================= //從頭到尾遍歷陣列,為每個元素呼叫指定的函式。 //返回值:undefined 無 //
原陣列不改變 //計算和 // var sum =0; // arr.forEach(function(val,index,a){ // sum+=val; // console.log(val,index,a) // }) // console.log(sum,arr); // //每個陣列元素值+1 // result=arr.forEach(function(val,i){ // arr[i]=val+1; // // break; //直接break會報錯,forEach中沒法終止遍歷
// }) // console.log(arr); // console.log(result); //undefined //map()====================================== //將呼叫的陣列的每個元素傳遞給指定的函式,並返回一個數組,它包含該函式的返回值 //原陣列不改變,而會返回一個新陣列 // result = arr.map(function(x){ // return x*x; //一定要有return,否則返回undefined // }) // console.log(result,arr); //filter()==================================== //filter方法返回的陣列元素是呼叫的陣列的一個子集。傳遞的函式是用來邏輯判定的。該函式返回true或false。 //原陣列不改變 // var result1 = arr.filter(function(v,i,a){ // return v>3; // }) // [4, 5] // console.log(result1) // var result2= arr.filter(function(v){ // return v%2; // }) //[1, 3, 5] // console.log(arr,result2); // // filter方法可以把稀疏陣列中的空元素篩出去 // var result3 = arr.filter(function(v){ // return v!=undefined &&v!=null; // }); // console.log(arr,result3); // every()和some()============================ //every和some是陣列的邏輯判定:他們對陣列元素應用指定的函式進行判定,返回true或false // every()方法就像數學中的“針對所有”的量詞:當且僅當針對陣列中的所有元素呼叫判定函式都返回true,它才返回true // result = arr.every(function(x){ // return x<10; // }) // console.log(result); // result = arr.every(function(x){ // return x%2===0; // }) // console.log(result); // some()方法就像數學中的“存在”的量詞:當陣列中至少有一個元素呼叫判定函式返回true,它就返回true,並且當且僅當數值中的所有元素呼叫判定函式都返回false,它才返回false // result = arr.some(function(v){ // return v%2===0; // }) // console.log(result); //一旦every()和some()確認該返回什麼值他們就會停止遍歷陣列元素 // some在判定第一個元素返回true就停止遍歷返回true,否則遍歷整個陣列直到遇到true // every在判定第一個元素返回false就停止遍歷,否知就一直遍歷直到遇到false為止 //reduce()和reduceRight()===================== //reduce()和reduceReight()方法使用指定的函式將陣列元素進行組合,生成單個值。這在函數語言程式設計中是常見的操作,也可以稱為“注入”和“摺疊” //返回值為化簡函式最後一次返回的結果 //陣列求積 // var product = arr.reduce(function(x,y,z,a){ // console.log(x,y,z,a); // return x*y; // }) // console.log(product); // //陣列求和 // var sum = arr.reduce(function(x,y,z,a){ // console.log(x,y,z,a); // return x+y; // }); // console.log(sum); // //陣列求最大值 // var max = arr.reduce(function(x,y){ // return x>y?x:y; // }) // console.log(max); // reduce()需要兩個引數。第一個是執行化簡操作的函式。化簡函式的任務就是用某種方法把兩個值組合或化簡為一個值,並返回化簡後的值。 //化簡函式function(初始值或者上一次化簡函式的返回值,陣列元素,元素的索引,陣列本身) // 第二個引數是一個傳遞給函式的初始值,當不指定初始值時,他將陣列元素的第一個值作為其初始值 // reduceRight()===================== // reduceRight()的工作原理和reduce()一樣,不同的是它按照陣列索引從高到低(從右到左)處理陣列。 // var product = arr.reduceRight(function(x,y,z,a){ // console.log(x,y,z,a); // return x*y; // },1) // console.log(product); //indexOf()和lastIndexOf()===================== </script> </body> </html>
1.let 
塊作用域
const
常量,不能二次賦值

2.箭頭函式
(引數)=>{邏輯程式碼}

引數為1時
引數=>{}

引數不為一時
()=>{}

返回值為值型別
()=>1
返回值為物件時
()=>({a:a})
其他情況
()=>{}

箭頭函式中的this跟包裹他的程式碼共享this,通常用在回撥函式中
setTimeout(()={},1000)

3.增強的物件字面量
var o={ 
    __proto__:parent,   //繼承
    name,            //屬性簡寫
    fun(){            //方法簡寫
        super.fun();     //呼叫父級物件上的方法
    },
    ["prpp"+(()=>10)]:110    //動態屬性
}


4.類
class extends constructor super static

class 類名{
      constructor(建構函式的引數){
    this.屬性名=“”

    
    }
    //公有方法
    fun(引數){
        //邏輯程式碼
        return 
    }
    //靜態方法的定義
    static fun(){}

}

var a = new 類名();
靜態方法的呼叫
類名.方法名();

子類

class 子類 extends 父類,父類{
    constructor(){
        super();   //繼承父類上的屬性方法以及靜態方法
        this.子類的屬性
    }
    //子類的方法
    fun(){
        super.fun()

    }

}

5.模板字串
var str = `
    ${變數名}

`

6.解構

es6按照一定的模式從陣列和物件中提取值,

7.預設引數
function f(x,y=10){
    

}
不定引數
function  fun(x,...y){


}

fun(1,1,2,3)

擴充套件運算子...
function fun(x,y,z){


}
fun(...arr)