模板字符串&箭头函数&三点运算符&解构赋值

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 fun4 = (x, y) => {
    return x + y
  };
  console.log(fun4(4, 1));   //5
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);

 

7、变量的解构赋值

   // 2 对象的解构赋值
    let obj = {name:'kobe',age:20};
    let {age} = obj;
    console.log(age);

    //3. 数组的解构赋值  不经常用
    let arr=[1,2,4,'ni'];
    let [,,,r] = arr;

 

 

 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值