首页 > 其他 > 详细

ES6整理

时间:2017-03-05 19:32:20      阅读:212      评论:0      收藏:0      [点我收藏+]

1.let

传统的变量声明都是用var        

eg:

(function(){
var i = 1;
var i = 10;
console.log(i);
})();

ES6改用let变量
声明
eg:
(function(){
  let i = 2;
  cosole.log(i);
}
与var的区别:
1.let声明的变量只在当前代码块有效
2.同一代码块里不允许出现重名let变量
3.let特别适合用于循环(因为var声明的变量会有变量提升的情况)
eg:
var arr = [];
for(var i = 0;i < 10;i++){
  arr[i] = function(){
  console.log(i);
}
}
arr[3]();//此时i=10
/****************************/
var arr = [];
for(let i = 0;i < 10;i++){
  arr[i] = function(){
  console.log(i);
}
}
arr[3]();//此时i=3
2.set
(1)set是ES6新增的一种数据类型,语法特点与数组类似。
(2)与数组不同的是set数据结构里的所有数据都是唯一的。

eg:

/******传统写法******/
var arr = [1,2,3,4,6,6,7,7,8];
/*传统遍历数组方法一*/
for(var i = 0;i < arr.length;i++){
  console.log(arr[i]);//此时输出1,2,3,4,6,6,7,7,8
}

/*传统遍历数组方法二*/
arr1.map(function(val){
  console.log(val);
});

/******set写法******/
var set = new Set(arr);
/*set遍历数组方法*/

for(var element of set){//for in 循环不能遍历set集合,得用for of
  console.log(element );//此时输出1,2,3,4,6,7,8

}
/*set添加数据方法*/
var set2 = new Set();
for(var i = 0;i <10;i++){
  set2.add(i*2);
}
console.log(set2);

/*set将集合转换为数组 扩展运算符*/
var arr3 = [...set2];
console.log(arr3);

/*清空和删除set*/
set2.delete(2);//没有索引,直接删除数据2
console.log(set2);
set2.clear();//清空set2数据
console.log(set2);

tip:为什么在删除的时候没有用索引?
因为set数组的索引和数据是一样的。
eg:
  
let set3 = new Set([1,7,9,4,2,3,4]);

  set3.forEach(function(index,val){
    console.log(index+":"+val);//此时结果是1:1  7:7  9:9   4:4    2:2   3:3   4:4
  });
/*判断set中是否有对应数据*/
console.log(set3.has(9));//此时答案是true

/*set数组长度*/
console.log(set3.size);//此时是6,set没有length的属性

 

ES6整理

原文:http://www.cnblogs.com/chencuixin/p/6506188.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!