Fork me on GitHub

李可

导航

扩展运算符

函数:停止使用arguments

这里主要我使用时经常的遗漏点,和相对高级的注意点

不定参数

常用...args(参数中使用...扩展运算符)

const fn=(...args){
	console.log(`不定参数:...args中的...扩展运算符,目的为了代替在函数中使用argiments类数组对象`)
	for(let arg of args){
		console.log(`参数:${arg}`)
	}
}
const arg=()=>{console.log('fn1函数')}
fn(arg,1,2)
//不定参数:...args中的...扩展运算符,目的为了代替在函数中使用argiments类数组对象
//参数:()=>{console.log('fn1函数')}
//参数:1
//参数:2

默认参数

默认参数,注意:还支持从左到右的运算

function fn(arg1='人',arg2=(arg1=='人')?'有脑子':'没脑子'){
	console.log(`${arg1},${arg2}`)
}

fn()                          //人,有脑子
fn('猪猪')                 //猪猪,没脑子
fn('猪猪','非要说有脑子')     //猪猪,非要说有脑子

数组字面量

var arr1=['a','b','c'];
var arr2=[...arr1,'d','e']; //['a','b','c','d','e']
//push函数中
var arr1=['a','b','c'];
var arr2=['d','e'];
arr1.push(...arr2); //['a','b','c','d','e']

解构赋值

let [arg1,arg2,...arg3] = [1, 2, 3, 4];
arg1 //1
arg2 //2
arg3 //['3','4']
//解构赋值中展开运算符只能用在最后:
let [arg1,...arg2,arg3] = [1, 2, 3, 4]; //报错

类数组对象变成数组

var list=document.getElementsByTagName('div');
var arr=[...list];

ES7草案中的对象展开运算符

let {x,y,...z}={x:1,y:2,a:3,b:4};
x; //1
y; //2
z; //{a:3,b:4}

对象像数组插入使用插入功能

var t={t:2}
var o={a:1,...t}//{a: 1, t: 2}

合并多个对象

let o1={a:1}
let o2={b:1}
let o3={c:1}
let o ={...o1,...o2,...o3}//{a: 1, b: 1, c: 1}

posted on 2017-06-18 19:18  李可在江湖  阅读(370)  评论(0编辑  收藏  举报