//大多數情況下,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...