前端面试(01)

最近在看前端面试题,发现都写的很对(废话一句),但是对于我这样平时敲业务代码用不上,只有面试的时候才临时抱佛脚不太友好,要记住的东西太多,所以我就精简出自己的一份,仅供自己参考。

vue:

  vue双向绑定原理:

    vue数据双向绑定是通过数据劫持,通过Object.defineProperty()来实现数据劫持结合发布者-订阅者模式的方式来实现的。

  vue生命周期:创建前,创建后,dom节点创建前创建后,dom节点更新前,更新后,模块销毁前,销毁后。

  vue父子组件生命周期:

     dom节点:

      父创建前  子创建前  子创建后  父创建后

    更新:

      父更新前  子更新前  自更新后  父更新后

    销毁:

      父销毁前 子销毁前 子销毁后 父销毁后

  vue实例:

    vue中带$的大部分都是vue实例,例如:$el,$set,$emit等

  vue指令:

    v-model,v-if,v-for,v-show,v-for等等,注意v-if和v-show的区别

  watch和计算属性:

    watch和计算属性最大的区别就是计算属性是有缓存的,而且计算属性里面只能使用同步而不能使用异步

  路由:

    路由分为hash和history,最直观的区别就是在地址栏中带有#,而history则没有带#;

    history模式下如果页面刷新而后端没有准备的话会出现404页面,此时需要后端配合做页面重定向。

其他:

  浏览器加载html过程:

    1.解析HTML文件,创建DOM树

    2.解析CSS,形成CSS对象模型

    3.计算层级

    4.将CSS与DOM合并,构建渲染树(renderingtree)

    5.布局和绘制

  webpack:

    webpack主要就是entry,output,loader,plugin,因为webpack只能识别js文件,所以需要loader将其他文件转化为js文件供webpack识别。

    常用的loader有:css-loader,html-loader,file-loader,url-loader...等等

  es6:

    es6新特性:箭头函数(箭头函数的this在创建的时候就确定好了,指向本身切不可修改),class,premise等等

    premise:

      主要有三个状态:成功,失败,处理中。

      在promise原型中有then,catch方法,这两种方法可以做链式调用。

      all方法用于将多个实例包装成一个实例,当异步操作执行完后再来执行all方法。

      每一个对象都有prototype属性和_proto_属性,两者都是一致的,前者可修改,后者不可修改,对象中的原型一层层的向父级追溯形成的链,就叫原型链。(我实在搞不清原型和原型链,这里是我自己理解的)

  

  

原文地址:https://www.cnblogs.com/sixrookie/p/12878576.html