ES6中的函数和数组补漏

对象的函数解构

我们在前后端分离时,后端经常返回来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


猜你喜欢

转载自blog.csdn.net/weixin_41013537/article/details/80332274