ES6中的函式和陣列補漏
阿新 • • 發佈:2018-11-08
物件的函式解構
我們在前後端分離時,後端經常返回來JSON格式的資料,前端的美好願望是直接把這個JSON格式資料當作引數,傳遞到函式內部進行處理。ES6就為我們提供了這樣的解構賦值。
let json={
a:'leiy',
b:'ly'
}
function fun({a,b="yu"}){
console.log(a,b);
}
fun(json)
列印結果:
leiy ly
陣列的函式解構
函式能解構JSON,那解構我們的陣列就更不在話下了,我們看下邊的程式碼。我們宣告一個數組,然後寫一個方法,最後用…進行解構賦值。
let json=['rr','uu','tt']
function fun(a,b,c){
console.log(a,b,c);
}
fun(...json)
列印結果:
rr uu tt
in的用法
in是用來判斷物件或者陣列中是否存在某個值的。我們先來看一下用in如何判斷物件裡是否有某個值。
物件判斷
let obj={
a:'leiy',
b:'ly'
}
console.log('a' in obj);
列印結果:
true
陣列判斷
先來看一下ES5判斷的弊端,以前會使用length屬性進行判斷,為0表示沒有陣列元素。但是這並不準確,或者說真實開發中有弊端。
let arr=[,,,,,]
console.log(arr.length);
列印結果:
5
上邊的程式碼輸出了5,但是陣列中其實全是空值,這就是一個坑啊。那用ES6的in就可以解決這個問題。
let arr=[,,,,,]
console.log(0 in arr);
let arr1=['ly','leiy']
console.log(0 in arr1);
列印結果:
false
true
注意:這裡的0指的是陣列下標位置是否為空。
陣列的遍歷方法
1.forEach
let arr=['tt','uu','ii'] arr.forEach(function(val,index){//es5語法 console.log(val,index); }) arr.forEach((val,index)=>console.log(val,index))//es6語法
列印結果:
tt 0
uu 1
ii 2
tt 0
uu 1
ii 2
2.filter
let arr=['tt','uu','ii']
arr.filter(function(x){//es5語法
console.log(x);
})
arr.filter(x=>console.log(x))//es6語法
列印結果:
tt
uu
ii
tt
uu
ii
3.some
let arr=['tt','uu','ii']
arr.some(function(x){//es5語法
console.log(x);
})
arr.some(x=>console.log(x))//es6語法
列印結果:
tt
uu
ii
tt
uu
ii
4.map
let arr=['tt','uu','ii']
console.log(arr.map(x=>'web'))//es6語法
列印結果:
[ 'web', 'web', 'web' ]
map在這裡起到一個替換的作用
陣列轉換字串:
在開發中我們經常會碰到把陣列輸出成字串的形式,我們今天學兩種方法,你要注意兩種方法的區別。
join()方法
let arr=['tt','uu','ii']
console.log(arr.join('|'))
列印結果:
tt|uu|ii
join()方法就是在陣列元素中間,加了一些間隔,開發中很有用處。
toString()方法
let arr=['tt','uu','ii']
console.log(arr.toString())
列印結果:
tt,uu,ii