Bootstrap

【Java script基础学习】ES6新增

  1. 新增的声明关键字

    • let,const,class,import,export
    • let
      • 不允许变量名重复
      • 全局变量不属于window
      • 块级作用域:花括号就是作用域
      • 不存在提升
      • 暂时性死区
    • const
      • 拥有let所有特点
      • 常量,声明之后地址不允许被修改,值可以修改
    • 使用建议: const > let > var
  2. 新增的箭头函数:非正常函数,不能直接使用,只能作为值使用

    • 语法,极简:()=>{}
      • 当有且只有一个参数时,可以省略小括号
      • 当有且直接设置了返回值时,可以省略花括号和return
        • 注意:花括号和return必须同时省略
      • 直接返回对象时,如果需要省略return,需要将对象再套一层小括号
    • 箭头函数内部没有this,使用上一层的this
    • 使用场景
      1. 作为赋值式创建函数的值
      2. 作为参数使用(回调函数)
      3. 作为返回值使用(闭包函数)
      4. 作为匿名函数的函数体
      5. 作为事件处理函数,不建议
  3. 新增的运算符 - 展开运算符

    • 用来操作复杂数据(打包之后的数据),数组和对象
    • 展开之后,数据一定要放在合适的位置
      • 数组:只能在能接收多个数据的位置展开
      • 对象:只能在能接收键值对的位置展开
    • 语法:...数据
    • 应用:
      • 深拷贝
      • 合并
      • 快速传参
      • …等等等
  4. 新增的解构赋值

    • 解构:解开复杂数据的结构进行赋值,数组和对象和字符
    • 数组:从左向右依次解构,超出数据长度,解构出undefined
      • let [a, c, b] = [3, 4, 5];
    • 对象:按照键(key)一一对应,不存在的key为undefined
      • let {age,name} = {name:"admin",age:18};
    • 字符:类似于数组
      • let [a,s,d,f] = "hello";
    • 应用:
      • 快速传参
      • 交换变量的值
      • …等等等
  5. 字符串的新增

    • 对Unicode编码中无法被一个四位的十六进制表示的字符提供的支持
      • 如:𠮹,需要被两个四位的十六进制表示
      • 将字符转成Unicode编码:“𠮹”.codePointAt()
      • 将Unicode编码转成字符:String.fromCodePoint(134073)
    • Unicode编码在浏览器中新的表示方式
      • “\u{20bb9}”
    • 字符的方法
      • 是否包含指定:str.includes(子串)
      • 是否以指定开头:str.startsWith(子串)
      • 是否以指定结尾:str.endsWith(子串)
      • 重复字符串:str.repeat(n)
    • 字符串模板
      • 要求使用反引号包裹字符串:`
      • 在反引号包裹的字符串中,使用${}标记变量
      • 支持在代码中直接换行表示
  6. 新的数据类型:Symbol

    • Symbol
      类字符的数据类型,突出了字符的标记功能,Symbol类型主要用来做标记数据使用。自身的值,并不是那么重要,主要是自身所表示的标记
    • 创建Symbol
      • let s1 = Symbol();
      • 任何两个Symbol都不相等
    • Symbol使标记的定义和使用,容错率更高,语义化更好
  7. ES6新增 - 数据集合

    1. 数据的新的集合形式,不是新的数据类型,之前的数据集合形式:数组,对象
    2. ES6新增了:set集合和map集合
    3. set集合:对应数组,但不允许数据重复
    • 创建:new Set(数组)
    1. map集合:对象对象,但不存在键值对,本质为值值对
    • 创建:new Map()
    1. 方法或属性
    • 数据的个数:s|m.size
    • 数据中值对应的名字集合:s|m.keys()
    • 数据中值的集合:s|m.values()
    • 数据中数据的集合:s|m.entries()
    • 给set添加数据:s.add(值)
    • 给map添加数据:m.set(名, 值)
    • 读取map的数据:m.get(名)
    1. 新的遍历方式:for-of
    • for-in遍历的是索引或key
      • 无法遍历set和map
    • for-of遍历的是值
      • 无法遍历对象
;