即使用就是严格模式"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];
let arr = [1,2,3,4];
let [a,b,c,d]=arr;
- 对象的解构赋值:{属性=默认值}={属性:值};
好处:
- 快速交换两个变量中的值;
- 函数的形参可以设置默认值;
- 函数的形参可以不按顺序传递;
- 函数的返回值可以返回多个值;
五、字符串的扩展方法
- includes("字符串",start):判断父串中是否包含子串的内容,从指定下标从左到右查找字符串包含start下标;
- startswitch("字符串",start):判断子串是否在父串的开头部分,返回布尔值;从start下标开始向右查询包含start下标;
- endswidth("字符串",start):判断子串是否在父串的结尾部分,返回布尔值;从start下标开始向左查询且不包含start下标;
4.repeat(n):出现的次数;
n:如果是正整数,重复n次
n:如果是小数,直接取整数向下取整并重复几次;
n:如果是其他类型,则自动转为数字,转换失败,转为NaN,按0次算;
5.模版字符串
${};改变的地方用${}就可以
六、箭头函数
()=>{};
- 箭头函数中没有this指向,指向上下文的this;
- 不能创建构造函数,也不能new;
- 建议在回调函数中使用;
七、 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);//超类,父类,基类,调用父类的属性;
}
}
基础基本已经回顾完了
接下来进入面试相关概念=>