Es6

什么是ES6

ES6, 全称 ECMAScript 6.0 ,是 JavaScript 的下一个版本标准,2015.06 发版。
ES6 主要是为了解决 ES5 的先天不足,比如 JavaScript 里并没有类的概念,

ES6新增特性

  1. var let const:
    let和var的区别:
    (1)看是否有变量提升
    var有变量提升,let没有
    (2)看是否有块级作用域
    (3)看是否能够重复定义
    let和const解决了以上问题如下:
    不可以重复声明变量
let site = 'itLike';
let site = 'itLike';
console.log(site);

不存在变量提升

console.log(site);

let site = 'itLike';

可以定义常量

const E = 2.718;

E = 2.71;

console.log(E);

//  引用类型
const LK = {

   name:'itLike',

   intro: '喜欢IT, 就上撩课(itLike.com)'

};

LK.name = '撩课';
console.log(LK);

块级作用域
如果用var定义变量,变量是通过函数或者闭包拥有作用域;但,现在用let定义变量,不仅仅可以通过函数/闭包隔离,还可以通过块级作用域隔离。
块级作用域用一组大括号定义一个块,使用 let 定义的变量在大括号的外部是访问不到的,此外,let声明的变量不会污染全局作用域。

{let site = 'itLike';}

console.log(site);

if(1){  let str = '04'; }

console.log(str);
  1. 解构赋值
    解构赋值是对赋值运算符的扩展。
    他是一种针对数组或者对象进行模式匹配,然后对其中的变量进行赋值。
    在代码书写上简洁且易读,语义更加清晰明了;也方便了复杂对象中数据字段获取。
  • 构的源,解构赋值表达式的右边部分。
  • 解构的目标,解构赋值表达式的左边部分。
    变量解构赋值(数组解构)
let nameArr = ['撩课', '小撩', '小煤球'];

let name1 = nameArr[0];

let name2 = nameArr[1];

let name3 = nameArr[2];

//  解构写法

let [name1, name2, name3] = nameArr;

console.log(name1, name2, name3);

变量解构赋值(对象解构)

//  写法1

let {name, age, sex}

 = {name: '小煤球', age: 1, sex: '公'};

// 结果: 小煤球 1 公

console.log(name, age, sex);

//  写法2: 解构重命名

let {name: lkName, age: lkAge, sex: lkSex}

= {name: '小煤球', age: 1, sex: '公'};

// 结果: 小煤球 1 公

console.log(lkName, lkAge, lkSex);  

//  写法3: 可以设置默认值

let {name, age, sex = '公'}

= {name: '小煤球', age: 1};

console.log(sex);  // 公


//  写法4:省略解构

let [, , sex] = ['小煤球', 1, '公 '];

console.log(sex);

3.延展操作符
延展数组

let arr1 = [ 'a', 'b', 'c'];
let arr2 = [1, 2, 3];
let result = [...arr1, ...arr2];
console.log(result);
 //  [ "a", "b", "c", 1, 2, 3 ]

延展对象

let smallDog = {name:'小煤球', age: 1};
let bigDog = {name: 'Python', age: 2};
let dog = {...smallDog, ...bigDog};
console.log(dog);  
// {name: "Python", age: 2}

注意: 如果对象中的属性一致, 会被覆盖
开发应用场景

function getMinValue() {
     console.log(Math.min(...arguments));
}
getMinValue(1, -99, 22, 10, 9); // -99

4.箭头函数
格式:(参数1,参数2,…参数n)=>{ //代码块 }
1.this指向不同:箭头函数没有自己的this,它的this指父级函数所在的this
2.箭头函数不能实例化:new ()=>{ } 报错
3.箭头函数没有arguments

箭头函数提供了一种更加简洁的函数书写方式。基本语法是:

> 参数 => 函数体

function 函数名称(参数列表){
  函数执行体
}
this指针的固化

var 函数名称 = (参数列表)=>{
  函数执行体
}
基本用法:
var f = v => v;
//等价于
var f = function(a){
 return a;
}
f(1);  //1

5、模板字符串
模板字符串用反引号()包含,变量用${}括起来; 在开发中使用是非常灵活的。

 let name = '小煤球';
 let sex = '公';
 let result = `我叫 ${name} , 我是 ${sex} 的`;
 console.log(result);

6.set 和 map

 set:数组的升级版本
  
    add:添加唯一值
    delete:删除某一个值
    clear:删除所有
    forEach:遍历set对象
    
    注:可以用set来实现数组去重,
    
    var arr=[3, 4, 5, 5, 2, 2, 4, 6, 562, 2]
    例如:[...new Set(arr)]
  
  map:对象的升级版本
  
   let m1=new Map() 创建map对象
   m1.set(key,value)设置key的值
   m1.get(key)获取key对应的值
   m1.keys()获取key所组成的对象
   m1.values()获取value组成的对象
   m1.entries()获取key,values组成的对象
   m1.forEach()遍历map对象

7.class类
第一点:ES5中是用函数来模拟一个类,ES6中class来实现一个类
类与对象的关系:一个类可以创建出多个对象(对象也称为实例)
class基本语法
JavaScript 语言中,生成实例对象的传统方法是通过构造函数和原型的组合模式.ES6 提供了更接近传统语言(java)的写法,引入了 Class(类)这个概念,作为对象的模板。通过class关键字,可以定义类。

class point{
	constructor(x,y){
        this.x=x;
        this.y=y;
    }
    play(){
        console.log("我会玩");
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值