es6常用语法

1、推荐学习视频:https://www.imooc.com/learn/955
2、5个常用es6语法
1)常量(const)

const PI = 3.1415926
console.log(PI)
PI=4//再次赋值会报错

2)作用域(let、{})

// ES5 中作用域
const callbacks = []
for (var i = 0; i <= 2; i++) {
    callbacks[i] = function() {
        return i * 2
    }
}
console.table([
    callbacks[0](),
    callbacks[1](),
    callbacks[2](),
])
//4
//4
//4

//ES6
const callbacks2 = []
for (let j = 0; j <= 2; j++) {
    callbacks2[j] = function() {
        return j * 2
    }
}
console.table([
    callbacks2[0](),
    callbacks2[1](),
    callbacks2[2](),
])
//0
//2
//4

3)箭头函数

a=>a*2
()=>{}
(a,b)=>{return a+b}
//箭头函数中的this,定义时是谁就是谁
//函数中this,谁调用就是谁
{
  // ES3,ES5
  var factory = function() {
    this.a = 'a';
    this.b = 'b';
    this.c = {
      a: 'a+',
      b: function() {
        return this.a
      }
    }
  }
  console.log(new factory().c.b());//a+
}
{
  //ES6
  var factory = function() {
    this.a = 'a';
    this.b = 'b';
    this.c = {
      a: 'a+',
      b: () => {
        return this.a
      }
    }
  }
  console.log(new factory().c.b());//a
}

4)默认参数

function f(x, y = 7, z = 42) {
    return x + y + z
}
function checkParameter() {
    throw new Error('can\'t be empty')
}
function f(x = checkParameter(), y = 7, z = 42) {
  return x + y + z
}

5)对象代理

let Person = {
    name: 'es6',
    sex: 'male',
    age: 15
};
let person = new Proxy(Person, {
  get(target, key) {
    return target[key]
  },
  set(target,key,value){
    if(key!=='sex'){
      target[key]=value;
    }
  }
});

console.table({
  name:person.name,
  sex:person.sex,
  age:person.age
});
try {
  person.sex='female';
} catch (e) {
  console.log(e);
} finally {

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值