目录:
1.数组中常用的一些方法:
答:
(1).push 向数组的末尾添加一项或者多项元素。
(2).pop 删除数组的最后一项
(3).shift 删除数组的首项
(4).unshift 向数组的开头添加一或多项
(5).splice 增删改
(6).slice 截取数组(复制数组)
(7).join 用指定的分隔符将数组每一项拼接为字符串。
(8).concat 用于连接两个或多个数组
(9).sort 对数组的元素进行排序
(10).reverse 倒叙数组
2.谈谈this指向。
答:
this是函数运行时自动生成的一个内部对象,只能在函数内部使用,但总指向调用它的对象。它的指向由调用它的对象来决定,
—如:
(1)在全局中this指向window
(2)直接调用函数this指向window
(3)事件处理函数中this指向绑定事件的元素。
(4)obj.fn();fn函数中this指向obj
(5)回调函数中this指向window
(6)构造函数中this指向实例化对象
3.说一说constructor()?
答:
constructor的作用数可以知道实例对象的构造函数是谁,constructor属性表示原型对象与构造函数之间的关联关系,如果修改了原型对象,一般会同时修改constructor属性,防止引用的时候出错。
4.class与function定义类的区别?
答:
(1)关于构造器constructor:在function定义的构造函数中,其prototype。constructor属性指向构造 器自身,在class定义的类中,constructor其实也相当于定义在prototype属性上。
(2)重复定义:function会覆盖之前定义的方法;class会报错
(3)原型或者类中方法的枚举:class中所有方法不可枚举
(4)class没有变量提升,function有
(5)class定义的类没有私有方法和私有属性
5.aixos的原理,基本什么实现?
答:
Axios是一个基于promise的HTTP库,可以用在浏览器和node.js中。axios还是属于XMLHttpRequest,因此需要实现一个Ajax;还需要一个promise对象来对结果进行处理。
6.Axios二次封装的目的?
答:
二次封装axios,方便我们后续项目的使用。
api统一管理,不管接口有多少,所有的接口都可以非常清晰,容易维护.通常我们的项目会越做越大,页面也会越来越多,如果页面非常的少,直接用axios也没有什么大的影响,那页面组件多了起来,上百个接口呢,这个时候后端改了接口,多加了一个参数什么的呢?那就只有找到那个页面,进去修改.整个过程很繁琐不易于项目的维护和迭代.
7.箭头函数与普通函数的区别?
答:
(1)定义的形式不同。
(2)箭头函数全都是匿名函数。
(3)普通函数的this指向调用者,箭头函数的 this 永远指向其上下文的 this,任何方法都改变不了箭头函数this指向,如 call() , bind() , apply()
(4)箭头函数不具有prototype属性,新建的对象的隐式原型无法被指定为箭头函数的原型
(5)箭头函数不能用于构造函数
(6)箭头函数不能Generator函数
(7)箭头函数不具有arguments对象