关于面试?

一、javascript相关

1、js的基础类型?undefined、null、number、boolean、string  引用类型 Object、array、function、data   (null表示"没有对象",即该处不应该有值。undefined表示"缺少值",就是此处应该有一个值,但是还没有定义。)

2、判断数组的方式有哪些?

  2.1   PS:instanceof的实现原理(判断左边对象的原型链上是否存在右边原型)

var array = [];
array instanceof Array;

  2.2  PS:instanceof和constructor判断的变量,必须在当前页面申明的,比如,一个页面(父页面)一样一个框架,框架中引入一个页面(子页面),在子页面中声明的array,并将其复制给父元素的一个变量,判断该变量,将返回false。

var array = [];
array.constructor === Array

  2.3

var array = [];
array.__proto__.constructor === Array;

  2.4

var array = [];
Array.isArray(array);

  2.5   toString(最常用)考虑Array.isArray的兼容性问题

if(!Array.isArray){
    Array.isArray = function(arg){
        return Object.prototype.toString.call(arg)==='[object Array]';
    }

}
var array = [];
Array.isArray(array);

  3、箭头函数与普通函数的区别

    1、箭头函数没有prototype属性

    2、箭头函数的this指向定义时外层第一个普通函数的this

    3、不能直接修改箭头函数的this

    4、当箭头函数外层没有普通函数时,它的this在严格和非严格模式都是指向window。

    5、箭头函数没有外层函数直接使用arguments会报错

    6、箭头函数有外层函数时,arguments继承自外层函数的arguments

    7、使用new调用箭头函数会报错

    8、箭头函数不支持重名参数

3、面向对象

  封装

  继承

    实现继承是指使用基类的属性和方法而无需额外编码的能力

    接口继承是指仅使用属性和方法的名称、但是子类必须提供实现的能力

    可视继承是指子窗体(类)使用基窗体(类)的外观和实现代码的能力

  多态

    覆盖、重载

4、数据结构

  数组、栈、队列、链表、树、堆

5、算法

6、设计模式

二、 vue

  

  data props methods 实例化过程  props=>data=>methods

  1、 Vuex页面刷新数据丢失问题怎么解决?

    使用vuex-persist插件,持久化存储的插件,直接将状态保存在cookie或者localStorege中

  2、 data为什么是一个函数?

    组件需要复用,组件实例都会复用data,如果data是对象会影响到其余组件

  3、keep-alive的左右是什么?

    缓存组件,防止页面重复渲染,提升用户体验,同时减少接口请求,减小服务器压力。

三、webpack

  四个核心概念: 入口(entry)、输出(output)、loader、插件(plugins)

四、性能优化

.......

五、开发流程与部署

.......

六、浏览器兼容性

.......

七、Vue与React对比差异

https://juejin.im/post/5e153e096fb9a048297390c1

八、ES6

  

   

  

   

  class 类:

   

九、HTTP

十、可视化

1、canvas与svg

原文地址:https://www.cnblogs.com/taochengyong/p/12162209.html