美文网首页
面试进阶

面试进阶

作者: 星空里的尘埃 | 来源:发表于2019-04-12 12:18 被阅读0次

    公司目前的组织架构、项目组成、技术方向、客户群体

    es6; css3; 闭包;原型链;事件委派;作用域;作用域链

    面试

    • axios(请求机制)

      是基于promise,用于浏览器和node.js的一个http客户端

      主要用于向后台发起请求,在请求中做更多的控制

      支持promise、提供一些并发的方法、提供拦截器、支持csrf(跨站请求伪造)

    • axios、fetch、ajax的区别

      前两者支持promise、后面是使用的callback方式

      fetch、本质上脱离xhr、、默认不传cookie、不能监听请求的进度。

    • vuex(并发上来看适不适合)

      一个专门为vue构建的状态集管理(目的:解耦,集中式管理)

      • 主要是解决组件间状态共享的问题,原本是组件与组件之间的交流,转变为组件与仓库之间的交流

      方便调用一些共用的数据、方便日后的维护、数据流更加清晰、代码更方便管理

      vuex的核心

      state、存放数据

      mutations、变更状态

      getters、相当于computed

      actions、动作-----mutations

      modules、对仓库拆分,方便对数据取(state中数据越存越多,进行拆分)

      弹窗为form表单,关闭再打开保持状态(使用vuex)

    • computed:在vue中动态渲染的一个函数
    • v-show:给dom对象添加display:none;

      v-if:将dom对象移除

      v-model:表单的数据双向绑定

      • 等同于 v-bind绑定了一个value的属性, 用v-on把当前的元素绑定到了一个事件上
    • 路由

      全局的钩子函数

      beforeEach:在路由切换开始时调用

      afterEach:在路由切换离开时调用

      局部到单个路由

      beforeEnter

      组件的钩子函数

      beforeRouterEnter

      beforeRouterUpdate

      beforeRouterLeave

    • 关于vue

      vue是由饿了么团队开发并维护的一个渐进式js框架

      使用了mvvm框架,数据驱动、双向绑定、组件

    • vue生命周期
    • vue组件封装

      目的:复用性高,便于解耦

      1.采用ES6的import ... from ...语法或CommonJS的require()方法引入组件
      2.对组件进行注册,代码如下

      // 注册
      Vue.component('my-component', {
        template: '<div>A custom component!</div>'
      })
      

      3.使用组件<my-component></my-component>

      • 制作组件时,组件为中data为函数形象,主要是防止组件与组件之间的变量互相影响。
    • nextTick 解决dom异步操作,解决数据异步加载、后置型,初始化数据先执行

    • 路由懒加载 延迟加载、按需加载

      return ()=> import(`@/components/${view}.vue`)
      
      
      
      
      
    • vue-loader:

      加载器、把vue组件转化为javaScript模块

      • 动态渲染一些数据
      • 三个标签都做了相对应优化,style可以直接使用es6、style也可以默认使用sass、提供了作用域的选择
      • 开发阶段,提供热加载(实时更新)
    • 插槽(slot)占位的(公交车占位),使组件的复用性更高

      默认插槽(匿名)

      具名插槽

      作用域插槽(slot-scope)只作用于当前的solt

      • 借助组件来实现,封装好的组件中加一个slot标签,在使用它的组件中标签对内添加内容
      • 匿名只能添加一个,具名可以添加多个(可以添加名称,name属性),顺序问题
      • 提供组件复用,提高效率
    • 虚拟dom以js对象形式出现

      真实dom以dom树的形式出现

      优化了diff算法

      更适合批量的修改dom,

      设置key,可以最大程度的去利用节点

      • 不设置key值,没有复用,再次重新追加
      • 可以进行相关复用,减少消耗,对应索引

      采用了新旧dom的对比,比较节点,获取你差异的dom,一次性更新到你真实的dom上

    • mvvm

      MVC模式 m(模型) v(视图) c(控制器) 反馈不及时

      MVVM模式 数据双向绑定 (三层)

      view视图 model 数据, view与model与viewmodel都是双向的,而model与view之间没有任何关系,通过viewmodel中间这个媒介来进行相关的交互,以至于view与model可以更专注于做自己事情。

      vue是专注于vue与viewmodel的框架,对应model的处理比较弱化,不过提出一个vuex来进行补充增强

    • keep-alive(保持我活着)

      让不活动的组件活着

      提供了include与exclude 两个属性 ,允许组件有条件的缓存

      在生命周期created的时候,把需要缓存的node节点给保持到cache,需要的时候,在render中,根据name再进行取出来

      vue中路由meta,meta中可以设置一些状态(路由元信息

    • 节流和防抖都是减少触发频率
      节流:固定的单位时间内就能触发一次(不执行下一个事件)
      防抖:固定的时间内反复触发,触发多次,只有最后一次生效。(删除前一个事件)

      滚动条滚动
      搜索框输入(快慢的搜索)

    • node常用的模块

      path:处理文件路径模块

      fs:操作文件系统

      http:提供http服务器功能

      url:用来解析url

      querystring:解析url中的查询字符串

      zlib:压缩

      • 切换node版本----nvm use/install

    js与jquery

    • 面向过程

      先干什么,后干什么,顺序的来

    • 面向对象

      不同异步谁先谁后(找到角色,确定职责)

    • this指向

      • this总是指向函数的直接调用者
      • 如果有new关键字,this指向new出来的那个对象
      • 在事件中,this指向触发这个事件的对象
      • 函数预编译过程中,指向window;全局作用域中this指向window
      • 函数.bind(obj),会生成一个新函数,新函数的this,会永久的指向obj,因此,this被绑定了
    • 箭头函数

      不能当构造函数来使用,不能使用构造函数,没有自己的this

      当箭头函数不存在,来去寻找this,父级上下文的this

      不可以使用arguments对象,该对象在函数体内不存在。如果要用,可以用Rest参数代替

    • 垃圾回收机制

      引用计数法

      标记清除法

      复制整理法

      闭包----外面的执行函数上有计数,不会被清0;

    相关文章

      网友评论

          本文标题:面试进阶

          本文链接:https://www.haomeiwen.com/subject/udxcwqtx.html