ES6

57 阅读3分钟

即使用就是严格模式"use strit"必须放在作用域开头;

一、修改上下文中的this指向(就是函数的方法)

  • bind(对象,参数1,参数2....)返回一个函数;

    使用时不会调用函数,而是返回一个原函数的拷贝和指定的this值,可以定义一个变量去接收返回的原函数拷贝;

  • call(对象,参数,参数....);返回一个对象;

  • apply(对象,数组/arguments);返回一个对象;

二、JSON的方法

JSON.parse():将json字符串解析为json对象;

json.stringify():将json对象转为json字符串;

三、let/const

let 声明变量 const声明常量;

1、与var有什么区别

  • let必须先声明后使用;
  • let声明的全局变量,不再是window的属性;
  • 在同一作用域中同一变量不能重复声明,否则报错;
  • 产生了块级作用域,在块内声明的变量,只能在当前块中使用;
  • for循环本身是一个块级作用域,而循环体又是for循环中的子级作用域;

四、解构赋值:快速读取数组或对象中的元素

  1. 数组的解构赋值:[变量=默认值]=[1];
let arr = [1,2,3,4];
let [a,b,c,d]=arr;
  1. 对象的解构赋值:{属性=默认值}={属性:值};

好处:

  • 快速交换两个变量中的值;
  • 函数的形参可以设置默认值;
  • 函数的形参可以不按顺序传递;
  • 函数的返回值可以返回多个值;

五、字符串的扩展方法

  1. includes("字符串",start):判断父串中是否包含子串的内容,从指定下标从左到右查找字符串包含start下标;
  2. startswitch("字符串",start):判断子串是否在父串的开头部分,返回布尔值;从start下标开始向右查询包含start下标;
  3. endswidth("字符串",start):判断子串是否在父串的结尾部分,返回布尔值;从start下标开始向左查询且不包含start下标; 4.repeat(n):出现的次数; n:如果是正整数,重复n次 n:如果是小数,直接取整数向下取整并重复几次; n:如果是其他类型,则自动转为数字,转换失败,转为NaN,按0次算; 5.模版字符串${};改变的地方用${}就可以

六、箭头函数

()=>{};

  1. 箭头函数中没有this指向,指向上下文的this;
  2. 不能创建构造函数,也不能new;
  3. 建议在回调函数中使用;

七、 symbol

ES6新增的一种基本数据类型;

特点:可以确认变量中的值是唯一的;

八、set:天然具有去重的功能(数组)

set是一种集合类型,用于存储唯一值。它类似于数组,但成员的值都是唯一的,即不能有重复的值; 特性:

  • 可以存储任意类型的值;
  • 集合中的值是唯一的,即Set中不会有重复的值;
  • Set是无序的,即不能保证Set中元素的顺序; add():添加元素; has():判断是否有这个元素,返回布尔值; delete():删除指定的元素,返回布尔值; clear():清空Set对象; keys():获取所有的key; values():获取所有的value; entries():获取所有的key和value;

九、map(对象)

Map是一种键值对的集合,类似于对象,但键可以是任意类型的值;

特性:

  • 键和值可以是任意类型;
  • Map中的元素是有序的,即按照元素的插入顺序进行遍历;
  • Map的键是唯一的,即不能有重复的键。

应用场景:

  • 当前要存储键值对且键可以是任意类型时使用map;
  • 需要有序的键值对集合时使用Map;

生成器函数:Generators

解决异步程序产生的问题;

class/extend(关键字)

function   Dog(name,age){
          this.name=name;
          this.age=age;
          this.showName=function(){
          return this.name;
          }
};

ES6 定义类

class pig{
    constructor(name,age){
    this.name=name;
    this.age=age;
    }
    showName(){
    return this.name;
    }
}

extend

class wildPig extend Pig{
   consturctor(name,age){
   调用父类的构造函数
   super(name,age);//超类,父类,基类,调用父类的属性;
   }
}

基础基本已经回顾完了

接下来进入面试相关概念=>