ES6 学习笔记二
函数的扩展
-
函数参数默认值
const app = new Vue({ el:'#app', data:{ message:'我的卡号为xxxxx', }, methods:{ getName(second,first='李'){ console.log(second,first); }, }, mounted() { let a = '艳茹'; let b = '王'; this.getName(a); this.getName(a,b); } });
-
函数不定参数(扩展运算符的运用)
const app = new Vue({ el:'#app', data:{ message:'我的卡号为xxxxx', }, methods:{ getNames(name,...names){ console.log(name,names);//张静 ['廖艳茹','柯瑶'] }, }, mounted() { let a = '张静'; let b = '廖艳茹'; let c = '柯瑶'; this.getNames(a,b,c); } });
-
箭头函数
1、如果箭头函数不需要参数或需要多个参数,就使用一个圆括号代表参数部分
2、如果箭头函数的代码块部分多于一条语句,就要使用大括号将它们括起来,并且使用return语句返回
3、由于大括号被解释为代码块,所以如果箭头函数直接返回一个对象,必须在对象外面加上括号,否则会报错
4、箭头函数可以与变量解构结合使用
set 与 map 数据结构
1、Set对象是值的集合,你可以按照插入的顺序迭代它的元素。 Set中的元素只会出现一次,即 Set 中的元素是唯一的
2、Map 对象保存键值对。任何值(对象或者原始值) 都可以作为一个键或一个值
set属性与方法 | 返回值 |
---|---|
size | 返回Set对象中元素的个数 |
add | 向一个 Set 对象的末尾添加一个指定的值 |
clear | 清空一个 Set 对象中的所有元素 |
delete | 从一个 Set 对象中删除指定的元素 |
entries | 返回一个新的包含 [value, value] 形式的数组迭代器对象 |
forEach | 根据集合中元素的插入顺序,依次执行提供的回调函数 |
has | 返回一个布尔值来指示对应的值value是否存在Set对象中 |
values | 将返回一个新生成的可迭代对象,以插入 Set 对象的顺序返回其包含的每个元素的值 |
map属性与方法 | 返回值 |
---|---|
size | 返回 一个Map 对象的成员数量 |
clear | 移除Map对象中的所有元素,返回undefined |
delete | 移除 Map 对象中指定的元素 |
entries | 返回一个新的包含 [key, value] 对的 Iterator 对象 |
forEach | 以插入顺序对 Map 对象中的每一个键值对执行一次参数中提供的回调函数 |
get | 返回某个 Map 对象中的一个指定元素 |
has | 返回一个bool值,用来表明map 中是否存在指定元素 |
keys | 返回一个新的 Iterator 对象。它包含按照顺序插入 Map 对象中每个元素的key值 |
values | 返回一个新的Iterator对象。它包含按顺序插入Map对象中每个元素的value值 |
set | 为 Map 对象添加或更新一个指定了键(key)和值(value)的(新)键值对,返回Map对象 |
遍历方法
遍历方法 | 跳出循环 |
---|---|
for | continue,break,return有用 |
for in | continue,break,return有用 |
for of | continue,break,return有用 |
forEach | continue与break,return无用 |
const arr = [1,2,3,4,5];
for(let i=0;i<5;i++){ //有用
if(i === 2){
continue;
//break;
//return;
}
console.log(i);
}
for(let i in arr){ //有用,i 是键名,并非元素值
if(i === '2'){
continue;
//break;
//return;
}
console.log(arr[i]);
}
for(let i of arr){ //有用
if(i === 2){
//continue;
//break;
//return;
}
console.log(i);
}
arr.forEach(i => {
if(i === 2){
//continue;
//break;
return;
}
console.log(i);
})
本作品采用《CC 协议》,转载必须注明作者和本文链接
for in continue、break和return这个写错了,不是不支持,而是for in返回的i是index,并且类型是string,你可以在chrome中仔细试一下,es5之前就支持的for in,怎么可能不支持continue、break和return呢,不要误导他人啊