美文网首页
面试问题总结

面试问题总结

作者: 罂粟1995 | 来源:发表于2020-04-11 09:32 被阅读0次
    1. 说说对mvvm框架的理解。

    mvvm框架有模型、视图、视图模型组成。它与mvc框架的区别在于,mvc模型、视图、控制器之间的通信是单向的,mvvm则实现了双向数据绑定,视图与模型通过视图模型关联起来。双向数据绑定的好处在于实现了data和view之间的自动化处理,减轻代码负担。

    2. 说说对webpack的理解,与gulp有什么不同?

    gulp是基于任务和流的打包工具,找到某一类文件,对其做一系列链式操作,更新流上的数据,整条链式操作构成一个任务,多个任务构成了web的整个构建流程。
    webpack是基于入口的。webpack会自动地递归解析入口所需要加载的所有资源文件,然后用不同的Loader来处理不同的文件,用插件来扩展webpack功能。
    轻量级的项目打包,比如只打包css,用gulp更方便,webpack适合复杂项目的打包。

    3. webpack的构建流程是什么?

    初始化参数、开始编译、确定入口、编译模块、完成模块编译、输出资源、输出完成。

    4. Loader和Plugin的不同?

    Loader是"加载器"。webpack将一切文件视为模块,但是webpack原生是只能解析js文件,如果想将其他文件也打包的话,就会用到loader。 所以Loader的作用是让webpack拥有了加载和解析非JavaScript文件的能力。
    Plugin是"插件"。用于扩展webpack的功能。

    5. call、apply、bind的区别。

    都是用来改变this指向的,第一个参数都是this要指向的对象。区别在于call和apply都是对函数的直接调用,而bind返回的是一个新的函数。call与apply的区别在于传参的方式不同,apply的第二个参数接受的是一个数组,数组中包含需要改变this指向的方法的多个参数,call直接接受需要改变this指向的方法的多个参数,不需要传递数组。

    6. tcp三次握手。

    第一次握手:客户端向服务器发送请求信号;
    第二次握手:服务器回复客户端已收到请求,同意连接;
    第三次握手:客户端告诉服务器,已收到回复。
    三次握手完毕后,进行资源文件请求。

    7. post和get请求的区别,各自的缺点和好处。

    get的参数放在url中,post的参数放在body中;
    get可以被浏览器缓存,post不会;
    get请求可以直接输入在地址栏中,post不行;
    get会被浏览器缓存,post不会;
    get会被浏览器记录在历史记录中,可能会被爬虫请求,有安全性问题;post比get安全,但它每次都是直接请求服务器,意味着无法使用cdn缓存,所以速度比get慢。

    8. typeof有什么缺陷、instanceof有什么缺陷?

    typeof的缺陷:null、array、object都返回object,无法仔细区分;
    instanceof的缺陷:只要是在原型链上的都返回true。

    9. react兄弟组件之间除了使用redux还可以怎么传递参数?

    路由传参。
    url后带参数;
    state、query。

    相关文章

      网友评论

          本文标题:面试问题总结

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