ES6基础(一)

ES6

1、let 与const

-let 1、只能在当前的代码块中有效 2、let变量不能提升 3、不能重复声明 4、for循环体现let父子作用域

- cosnt 1、 声明必须赋值,

2、模板字符串

    var obj = {
        name:'李明',
        age:34
        }
    //模板字符串
    console.log('名字'+obj.name+'年龄'+obj.age);
    //`名字:${obj.name} 年龄:${obj.age}`
    console.log(`名字:${obj.name} 年龄:${obj.age}`);

3、简化对象的书写

    var a=1;
    var b=2;
    var obj1={
        a,   //省略同名关键字
        b,
        setA(x){
            console.log('aaaa');  //省略function关键字
        }
    }
    console.log(obj1);

4、箭头函数

**一般形式**:
let fn1=(x,y)=>{
    console.log(this);
}
fn1();

**/* 注意this指向的问题:箭头函数的this指向不是在调用时决定的,而是在定义的时候决定的
* 1、如果外部有函数,那么this指向外部函数的this
* 2、如果外部没有函数,指向window*/**

let obj={};
let fn1=(x,y)=>{
    console.log(this);  //window
    let fn3=()=>{
        console.log(this);   //window
        function f4() {
            console.log(this);    //obj
        }
        f4.call(obj);
    }
    fn3.call(obj);  //call不会改变箭头函数的this指向
}
fn1.call(obj);

//call会改变普通函数的this指向
function foo2() {
    let fn1=(x,y)=>{
        console.log(this);  //obj
    }
    fn1();
}
foo2.call(obj);  //call会改变this指向

5、三点运算符

//三点运算符可以将伪数组转换为真数组
function args(a,b,c,d){
    //获取实参列表,伪数组
    console.log(arguments); 
    //返回这个函数本身
    console.log(arguments.callee);

}
args(1,2,3,4);

//函数中的应用:真数组
function foo(...args){
    console.log(...args);   //1 2
    console.log(args);   //[1, 2]
}
foo(1,2);

//数组中的应用
let arr1=[1,2];
let arr2=[3,...arr1,4];
console.log(arr2);  //[3, 1, 2, 4]

6、形参默认值

function foo(x=1,y=2){
        this.x=x;
        this.y=y
    }
    var f=new foo();  //没有实参,执行形参默认值
    console.log(f);
    var p=new foo(4,5);  //有实参,执行实参中的值
    console.log(p);
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值