一:ES6的简介:
一个语法 能在it行业站住脚跟,那么必定有他的优势!结合上一遍es6 历史的一些讲解和由来!和版本等等!
ES6新增了一种独一无二的数据类型:Symbol。详情会在后面解释。
即现在javascript的数据类型共有以下7种。
String Number Boolean null undefined Object Symbol
let和const命令
关于let命令:
1.不存在变量提升。
2.从变量的使用到变量的声明属于暂时性死区。
3.不允许重复声明。
块级作用域
const命令
1.不允许重复声明;
2.声明之后变不可改变;当声明一个对象时需注意
eg:const a=0;a=3;>报错
eg:const obj={};obj.a=a;不报错 obj={};>报错;
解释:const声明的变量存储的是指向内存地址的指针,故不可赋值给其他,当声明的变量为对象时,可扩展此对象。
在前面我们有讲过 闭包相关知识,当时我们 都讲过其实用 let 也可以解决这个问题,也就是解决全局泄露的问题1
在这里插入代码片
var a = [];
for (let i = 0; i < 10; i++) {
a[i] = function () {
console.log(i);
};
}
a[6](); // 6
var a = [];
for (let i = 0; i < 10; i++) {
a[i] = function () {
console.log(i);
};
}
a[6](); // 6
Set 和 Map 数据结构
与 Array 增、删、改、查对比
let map = new Map();
let set = new Set();
let array = [];
// 增
map.set('t', 1);
set.add( { t : 1 } );
array.push( { t:1 } );
console.info( map, set, array ); // Map { 't' => 1 } Set { { t: 1 } } [ { t: 1 } ]
// 查
let map_exist = map.has( 't' );
let set_exist = set.has( {t:1} );
let array_exist = array.find(item => item.t)
console.info(map_exist, set_exist, array_exist); //true false { t: 1 }
// 改
map.set('t', 2);
set.forEach(item => item.t ? item.t = 2:'');
array.forEach(item => item.t ? item.t = 2:'');
console.info(map, set, array); // Map { 't' => 2 } Set { { t: 2 } } [ { t: 2 } ]
// 删
map.delete('t');
set.forEach(item => item.t ? set.delete(item):'');
let index = array.findIndex(item => item.t);
array.splice(index,1);
console.info(map, set, array); // Map {} Set {} []
函数默认参数设置:
//es5时
function action(num) {
num = num || 200
//当传入num时,num为传入的值
//当没传入参数时,num即有了默认值200
return num
}
//但是,num传入为0的时候就是false,但是我们实际的需求就是要拿到num = 0,此时num = 200 明显与我们的实际想要的效果明显不一样
//ES6为参数提供了默认值。在定义函数时便初始化了这个参数,以便在参数没有被传递进去时使用。
function action(num = 200) {
console.log(num)
}
action(0) // 0
action() //200
action(300) //300
箭头函数:不需要function关键字创建函数,省略return关键字,继承上下文的this关键字,this绑定的是所定义的作用域
arrow function 箭头函数
ES6中新增的箭头操作符 => 简化了函数的书写。操作符左边为输入的参数,而右边则是进行的操作以及返回的值,可以说是 ES6 最最常用的一个新特性了,看下面的实例:
let arr = [1, 3, 5, 7, 9];
arr.forEach (function(val, key) {
return console.log(val, key);
});
// ES6
let arr = [1, 3, 5, 7, 9];
arr.forEach (
(val, key) => console.log(val, key)
);
es6就是在JS的基础上简化了一些代码!