前端常问面试题

作者: getElementsByMK | 来源:发表于2017-07-06 22:34 被阅读0次

    1.什么是面向对象?

    面向对象是一种编程思想,是一种解决问题的思路。
    传统的编程思想是面向过程,他关注的是实现功能的步骤。
    在面向对象的思想中我们只需要关注实现功能的对象。而不必要知道这个对象是怎么实现这个功能的。拿来用就行了。比如说吃饭,我们不需要会做饭,只要知道点个餐,就会有饭吃就行了。
    面向对象的三个特点:
    封装:将数据和功能结合在一起就是封装。
    继承:所谓继承就是别人没有的东西,我拿过来,变成自己的东西。
    多态:多态这个概念是基于强类型的语言的,而js是弱语言,他本身就是多态的。

    2.sass与less有什么区别?二者有何优缺点?

    Sass(Sass3又称为SCSS)和less都是CCS的预处理器。
    而且less是参考了sass而创造出来的。二者的语法都差不多。
    sass比less要强大,sass可以自定义函数,自由使用if语句,而这些都是less所不具备的。我推荐使用sass。

    3.什么是AMD规范?

    AMD是Asynchronous Module Definition,异步模块定义,是一种浏览器端的模块开发规范。而服务端是用的CommonJS规范。
    requireJS对模块的态度是预执行,将需要依赖的的模块先加载出来。
    优点:
    (1)实现js文件的异步加载,避免网页失去响应;
    (2)管理模块之间的依赖性,便于代码的编写和维护。
    前端模块化开发的优点:
    (1)方便代码的后期维护
    (2)防止全局变量的污染
    (3)更好的进行HTML和JS分离

    MVC和MVVM设计模式

    MVC(Model View Controller)数据模型 视图 控制器
    缺点:
    1.模型的代码很少
    2.容易造成控制器代码冗余
    3.不好测试
    MVVM(Model View ViewModel)数据模型 视图 视图模型
    MVVM的概念:
    1.在MVVM中,View和Controller联系到一起,成为一个组件
    2.View和Controller都不能直接引用model
    3.在ViewModel中写验证逻辑、视图显示逻辑、发起网络请求和其他代码
    MVVM使用注意事项:
    1.view 引用 view model,但反过来不行
    2.view model 引用了 model,但反过来不行
    3.如果我们破坏了这些规则,便无法正确地使用 MVVM
    MVVM 的优点
    1.低耦合:View 可以独立于 Model 变化和修改,一个 ViewModel 可以绑定到不同的 View 上
    2.可重用性:可以把一些视图逻辑放在一个 ViewModel 里面,让很多 view 重用这段视图逻辑
    3.独立开发:开发人员可以专注于业务逻辑和数据的开发 ViewModel,设计人员可以专注于页面设计
    4.可测试:通常界面是比较难于测试的,而 MVVM 模式可以针对 ViewModel 来进行测试

    JSONP的优缺点?

    优点:
    1.它不像XMLHttpRequest对象实现的Ajax请求那样受到同源策略的限制,JSONP可以跨越同源策略;
    2.它的兼容性更好,在更加古老的浏览器中都可以运行,不需要XMLHttpRequest或ActiveX的支持
    3.在请求完毕后可以通过调用callback的方式回传结果。将回调方法的权限给了调用方。这个就相当于将controller层和view层终于分开了。我提供的jsonp服务只提供纯服务的数据,至于提供服务以 后的页面渲染和后续view操作都由调用者来自己定义就好了。如果有两个页面需要渲染同一份数据,你们只需要有不同的渲染逻辑就可以了,逻辑都可以使用同 一个jsonp服务。
    缺点:
    1.它只支持GET请求而不支持POST等其它类型的HTTP请求
    2.它只支持跨域HTTP请求这种情况,不能解决不同域的两个页面之间如何进行JavaScript调用的问题。
    3.jsonp在调用失败的时候不会返回各种HTTP状态码。
    4.缺点是安全性。万一假如提供jsonp的服务存在页面注入漏洞,即它返回的javascript的内容被人控制的。那么结果是什么?所有调用这个 jsonp的网站都会存在漏洞。于是无法把危险控制在一个域名下…所以在使用jsonp的时候必须要保证使用的jsonp服务必须是安全可信的。

    相关文章

      网友评论

        本文标题:前端常问面试题

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