5.16 箭头函数和Es6

# 正则
## 1. 正则的读
- 技巧
    - 记下所有符号
    - 逐位读
    - 注意小括号作为一个整体
    - 注意中括号表示一位
- 中文
    1. /^[\u2E80-\u9FFF]+$/
    2. /^[\u4E00-\u9Fa5]+$/
    - 背
# https://tool.oschina.net/uploads/apidocs/jquery/regexp.html

# ES5补充 - this相关,函数的方法
## 复习this
- 概念:当前函数的执行上下文
    - 执行函数的对象
    - 默认情况下:this所在的函数,被哪个对象执行,this就是这个对象
## 函数的方法
0. 关于称呼
    - 没有归属的函数,叫函数
    - 有归属对象的函数,叫方法
1. 函数的方法
    - 将函数作为一个对象,身上有属性,内存储了函数
        - 通过函数名.方法名()执行
2. 方法
    - call
        - 语法:函数名.call()
        - 功能:改变this指向
        - 参数:参数1和后面所有参数
            - 参数1:要改变的this指向
            - 后面所有参数:作为实参传到当前这次执行的函数中
        - 返回值:原函数的返回值
    - apply
        - 函数名.apply()
        - 功能:改变this指向
        - 参数:参数1和参数2
            - 参数1:要改变的this指向
            - 参数2:数组,被当前这次执行的函数中的arguments解析
        - 返回值:原函数的返回值
    - bind
        - 函数名.bind()
        - 功能:改变this指向
        - 参数:参数1和后面所有参数
            - 参数1:要改变的this指向
            - 后面所有参数:作为实参传到当前这次执行的函数中
        - 返回值:改变了this之后的**新**函数,和老函数长得一样,但不是一个
    - 只要会用即可,但其实,妙用无穷
        - 基础篇:https://www.jianshu.com/p/0a6655dbf420
        - 扩展篇:https://www.jianshu.com/p/a6f26c3756fe
   
# ES6新增的常用语法
1. 简单说明
    - ES6:ECMAScript6的版本的简称
    - ES6有兼容,低版本浏览器不支持,其实兼容问题已经很小了
        - ES6已经大面积流行使用,上线之前会利用工程化工具,将ES6的语法编译成ES5的语法
2. 新增声明关键字 - let,const
    - let,const,export/import(ES6的模块化),class(类)
    - let,const
        - 基本上都可以替换var,但是要注意,自身的特性
    - let的特性
        - 不允许重复声明
        - 没有提升
        - 暂时性死区
        - 块级作用域
        - 全局没有给window
    - const的特性
        - 与let一致
        - 标志着变量的地址不允许修改
            - const只能保证,地址不被修改,保证不了值的改变
            - 但是基础类型(值),地址就是值,值就是地址,所有都不能改
            - 但是复杂类型(引用),地址就是地址,值就是值,所以值可以改,地址不能改
    - 总结
        - 所有的var都可以替换成let,但是要注意新特性
            - 尤其是:块级作用域
3. 箭头函数:()=>{}
    - 箭头函数等同于无名函数,不能直接存在,必须作为值使用
    - 有且只有一个参数时,小括号可以省略
        ```js
        var fn = a=>{
            console.log(a)
        };
        ```
    - 有且直接返回值,花括号和return也可以省略
        ```js
        var fn = a=>"hello "+a;
        ```
    - 特点:
        1. 没有自己的this,自动绑定上层函数的this
        2. 省略花括号,并返回对象时需要给对象加小括号
        3. 语义化极差
        4. 简单,方便,体积小
    - 作为参数或返回值等小范围使用,非常舒服,如
        ```js
        [67,13,36,1,35].sort((a,b)=>a-b);
        ```
   
   

猜你喜欢

转载自www.cnblogs.com/xiaokeai233/p/12907598.html