码迷,mamicode.com
首页 > 其他好文 > 详细

ES6新增语法

时间:2020-04-19 18:05:37      阅读:67      评论:0      收藏:0      [点我收藏+]

标签:apply()   cdc   使用   strong   定时器   pac   div   事件绑定   事件   

1.let 与 const 定义变量

  let    多用于定义 基本数据类型 以及 循环中

  const  多用于定义 引用数据类型

  特点:定义的变量名称不能重复

    在 { } 和 循环中定义,只能在 { } 和 循环中使用

    let会建立独立的,存储不同的,相互不冲突数据的变量

    const定义的变量,不能重复赋值,不能修改存储的数据

2.箭头函数(是函数的另一种语法形式)

  

        const fun = function(){}     普通函数
        const fun = ()=>{}            箭头函数
        将匿名函数的部分,从 function(){} 写成 ()=>{} 的形式
        
        如果函数只有一个参数,可以不写()
        const fun = function(e){}     普通函数
        const fun = e => {}           箭头函数

        如果执行体中只有一行代码,可以不写{}
        const fun = e=>{console.log(e)}    普通箭头函数
        const fun = e=> console.log(e)     不写{}箭头函数    

3.箭头中的this指向

  (1)普通函数的this指向

               声明式 --- window

               赋值式 --- window

               forEach循环 --- window

               定时器,延时器 --- window

               对象中的函数 --- 对象本身

               事件绑定事件处理函数 --- 绑定事件的标签

  (2)箭头函数的this指向

       父级程序的this指向

               如果父级程序有this指向(父级程序也是函数),this指向的就是父级程序的this指向

               如果父级程序没有this指向(数组,对象....),this指向的是window

4.改变this指向的三种方法

  

        const obj1 = {
            name:‘张三‘,
            age:18,
            sex:‘男‘,
        }

        const obj2 = {
            name:‘李四‘,
            fun2 : function(){
                console.log(this);
            }
        }    
     // 定义的带有参数的普通函数
    function fun3(name,age,sex){
            console.log(name,age,sex,this);
        }

 

  (1)call()方法

    语法: 函数.call(参数1,其他参数....可以是多个或者没有 ) 

    fun3.call(obj1,‘李四‘,20,‘女‘);

  (2)apply()方法

    语法: 函数.apply(参数1,参数2)  只有两个参数 

    fun3.apply(obj1 , [ ‘王五‘ , 20 , ‘不知道‘ ])

  (3)bind()方法

    语法: const 变量 = 函数.bind(参数1);

        bind方法,不是立即执行函数,而是定义生成一个新的函数
        新生成的函数,this指向是参数1
        新生成的函数,形参是原始函数fun3的形参

        const fun4 = fun3.bind(obj1);

        fun4(‘王二麻子‘ , 100 , ‘不详‘);        

  总结:

    call apply 都是立即执行函数

        参数1,都是改变的this指向

        其他参数,是原始函数的形参(可以有,也可以没有)

    bind 不是立即执行函数,是生成一个新的函数

      参数1,是改变的this指向

5.立即执行函数 (在定义函数的同时,立即执行这个函数)

    语法:

            (封装的函数)()

            !封装的函数()

            ~封装的函数()

            这三种语法没有区别,爱用哪个用那个

     定义函数
        function fun(){console.log(123)}
        调用函数
        fun();

        立即执行,在定义的同时,立即执行函数
        ( function fun1(){console.log(123)} )()
         立即执行函数,并没有真正的定义真个函数
         没有办法正常的再次调用这个函数
        fun1();

        !function fun1(){console.log(123)}()
        ~function fun1(){console.log(123)}()    

 

 逆战班

 

    

ES6新增语法

标签:apply()   cdc   使用   strong   定时器   pac   div   事件绑定   事件   

原文地址:https://www.cnblogs.com/sxk053788/p/12732257.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!