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

2022-03-05 06:39:02 字數 3798 閱讀 7210

//大多數情況下,es5的陣列方法接受的第乙個引數為乙個函式,並且對陣列的每個元素呼叫一次該函式。

//該函式有三個引數:陣列元素,元素的索引和陣列本身。

//如果有第二個引數,則第乙個引數中的this指向第二個引數。

vararr=[

1,2,

3,4,

5];varresult;

//foreach()*************************====

//從頭到尾遍歷陣列,為每個元素呼叫指定的函式。

//返回值:undefined 無

//原陣列不改變

//計算和

//var sum =0;

////每個陣列元素值+1

//result=arr.foreach(function(val,i))

//undefined

//map()***********************************===

//將呼叫的陣列的每個元素傳遞給指定的函式,並返回乙個陣列,它包含該函式的返回值

//原陣列不改變,而會返回乙個新陣列

//result = arr.map(function(x))

//filter()***********************************=

//filter方法返回的陣列元素是呼叫的陣列的乙個子集。傳遞的函式是用來邏輯判定的。該函式返回true或false。

//原陣列不改變

//var result1 = arr.filter(function(v,i,a)) // [4, 5]

//var result2= arr.filter(function(v)) //[1, 3, 5]

//// filter方法可以把稀疏陣列中的空元素篩出去

//var result3 = arr.filter(function(v));

//every()和some()*************************===

//every和some是陣列的邏輯判定:他們對陣列元素應用指定的函式進行判定,返回true或false

//every()方法就像數學中的「針對所有」的量詞:當且僅當針對陣列中的所有元素呼叫判定函式都返回true,它才返回true

//result = arr.every(function(x))

//result = arr.every(function(x))

//some()方法就像數學中的「存在」的量詞:當陣列中至少有乙個元素呼叫判定函式返回true,它就返回true,並且當且僅當數值中的所有元素呼叫判定函式都返回false,它才返回false

//result = arr.some(function(v))

//一旦every()和some()確認該返回什麼值他們就會停止遍歷陣列元素

//some在判定第乙個元素返回true就停止遍歷返回true,否則遍歷整個陣列直到遇到true

//every在判定第乙個元素返回false就停止遍歷,否知就一直遍歷直到遇到false為止

//reduce()和reduceright()********************=

//reduce()和reducereight()方法使用指定的函式將陣列元素進行組合,生成單個值。這在函式式程式設計中是常見的操作,也可以稱為「注入」和「摺疊」

//返回值為化簡函式最後一次返回的結果

//陣列求積

//var product = arr.reduce(function(x,y,z,a))

////陣列求和

//var sum = arr.reduce(function(x,y,z,a));

////陣列求最大值

//var max = arr.reduce(function(x,y))

//reduce()需要兩個引數。第乙個是執行化簡操作的函式。化簡函式的任務就是用某種方法把兩個值組合或化簡為乙個值,並返回化簡後的值。

//化簡函式function(初始值或者上一次化簡函式的返回值,陣列元素,元素的索引,陣列本身)

//第二個引數是乙個傳遞給函式的初始值,當不指定初始值時,他將陣列元素的第乙個值作為其初始值

//reduceright()********************=

//reduceright()的工作原理和reduce()一樣,不同的是它按照陣列索引從高到低(從右到左)處理陣列。

//var product = arr.reduceright(function(x,y,z,a),1)

//indexof()和lastindexof()********************=

script

>

body

>

html

>

1.let 

塊作用域

const

常量,不能二次賦值

2.箭頭函式

(引數)=>

引數為1時

引數=>{}

引數不為一時

()=>{}

返回值為值型別

()=>1

返回值為物件時

()=>()

其他情況

()=>{}

箭頭函式中的this跟包裹他的**共享this,通常用在**函式中

settimeout(()={},1000)

3.增強的物件字面量

var o=,

["prpp"+(()=>10)]:110 //動態屬性

}4.類

class extends constructor super static

class 類名

//公有方法

fun(引數)

//靜態方法的定義

static fun(){}

}var a = new 類名();

靜態方法的呼叫

類名.方法名();

子類class 子類 extends 父類,父類

//子類的方法

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)

ES6和ES5的區別

es6和es5的區別?1 定義變數 es5中用 var function es6中用 let const class import 沒有變數提公升 同乙個作用域中不可重複宣告 不會給window增加全域性屬性 會形成塊級作用域 const設定的變數值是不可修改的 理解為常量 暫時性死區 2 解構賦值...

es6和es5的區別

1 es6新增了let命令,用來宣告變數。它的用法類似於var,但是所宣告的變數,只在let命令所在的 塊內有效。a b let不像var存在變數提公升,即變數一定要宣告之後才能使用 2 塊級作用域 es5只有全域性作用域和函式作用域,沒有塊級作用域 3 變數的結構賦值 var a,b,c 1,2,...

es5和es6的區別

最近在看阮一峰的 ecmascript6入門 講真,這本書對初學者真的很有幫助,在這裡也推薦給大家。接下來,我要說的一些例子也大多 於這本書,如果對這本書感興趣的小夥伴,也可以戳這裡哦!1.新增let命令 在es6之前,我們宣告變數都是通過var,es6新增的let命令與var類似,與之不同是,le...