美文网首页
2020-03-06

2020-03-06

作者: 暮长亭晚 | 来源:发表于2020-03-06 10:15 被阅读0次

    常见前端面试题---其他篇

    1、如何理解MVVM模式和MVC模式

    MVC是经典的开发模式,model数据库,提供数据,view,视图,controller业务逻辑,路由分配,这种开发模式controller负责的太多,难以维护,m层和v层直接打交道,高耦合,所以为了解决这些问题,出现了MVVM模式,目前开发中用的模式,model后端提供数据,view视图,vm框架核心,model后端负责,view和VM前端负责,前后端分离,实现高内聚,低耦合,前后端同时开工,没有先后顺序,提高开发效率。

    2、前端性能优化的方法有哪些?

    ①减少http请求,减少请求的体积,比如用雪碧图,gulp或者webpack压缩文件

    ②通过规范布局来减少DOM数量,减少DOM操作,比如事件委托。

    ③把对应的文件放在对应的位置,css放在head里,js放在body底部。

    ④图片懒加载,按需加载。

    ⑤对于ajax请求可以使用get请求,一来get请求存在缓存机制,二来get请求只发请求头速度快。

    ⑥利用cdn加速来减轻服务端的压力,把你的资源放在人家的服务器上,但是数据库还是在自己的服务器上。

    ⑦使用多线程和异步请求

    3、H5新增特性有哪些?

    ①语义化标签

    ②canvas svg

    ③视频 音频

    ④本地存储

    ⑤地理定位

    ⑥离线存储:在离线状态上也可以访问之前的页面

    ⑦webwork  多线程执行JavaScript

    ⑧websocket  即时通信

    4、简述对语义化标签的理解

    标签语义化能让页面结构更加清晰,便于后期维护,便于浏览器和搜索引擎解析

    5、简述ajax实现流程以及优缺点?

    首先创建xmlHttpRequest实例对象,然后调用open方法指定请求的方式和请求路径,默认是异步请求,之后调用send方法发送请求,然后监听实例对象下的onreadystatechange方法,当状态满足的时候,拿到请求结果responseText,最后进行页面的渲染即可。

    优缺点:

    优点:ajax能实现网页局部更新,不用更新整个网页,减少带宽使用,提高加载速度

    缺点:支持同源策略,存在跨域问题

    6、Ajax中get和post请求方式的区别?

    ①post数据量大,get请求速度快

    ②两者的请求方式不同,get请求参数拼接在路径后面,post请求放在请求体中,在这之前设置请求头

    ③get请求存在缓存问题,可以拼接时间戳来解决数据得不到更新的问题

    7、jsonp的实现流程

    动态的创建script标签,后端返回回调函数的执行,并将请求的数据作为实参传入

    //创建script标签

    var script=document.createElement('script')

    //设置回调函数

    function getData(data){

        //数据请求回来会被触发的函数

        console.log(data);

    }

    //设置script的src属性,设置请求地址

    script.src="http://localhost:3000?callback=getData";

    //让script生效

    document.body.appendChild(script);

    8、ajax和jsonp的区别

    ①两者最大的区别就是ajax遵循同源策略,不能跨域,而jsonp可以

    ②ajax有get和post两种请求,jsonp只有一种get请求

    ③两者的实现方式也不一样,ajax是创建实例对象,jsonp是动态的创建script标签

    9、json对象与字符串互转方法?

    JSON.stringify()

    JSON.parse()

    10、Css清除浮动的方式

    ①给父元素设置overflow:hidden

    ②紧跟着设置浮动的元素的空标签设置clear:both;

    11、Css动画和过渡的区别?

    动画会自动开始执行,而且可以设置多个过渡状态,而过渡只有开始和结束两个状态

    12、inline-block间距解决办法

    ①给父元素设置font-size:0;同时给子元素设置相应的大小

    ②设置浮动

    13、简述事件委托的优点

    ①只需要绑定一次,减少DOM操作

    ②对于新添加的元素,同样可以触发事件

    14、写出处理事件冒泡和阻止浏览器默认行为的兼容处理

    <script>

    //阻止事件冒泡

    if(e.stopPropagation){

         e.stopPropagation();

    }else{

         e.cancleBubble=true;

    }

    //阻止浏览器默认行为

    if(e.preventDefault){

         e.preventDefault();

    }else{

         e.returnValue=false;

    }

    </script>

    14、获取页面滚动高度及设置页面滚动高度兼容写法

    //获取页面滚动高度

    varst=document.body.scrollTop||document.documentElement.scrollTop;

    //设置页面滚动高度

    window.scrollTo(x,y)    置顶的话0,0

    相关文章

      网友评论

          本文标题:2020-03-06

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