面试题 - 三题

1, axios和ajax和Fetch 的区别:

axios              :是通过promise实现对ajax技术的一种封装,就像jQuery实现ajax封装一样。

                      :客户端支持防御CSRF/XSRF

                      : axios 基于promise用于浏览器和node.js的http客户端

                      :  在浏览器中创建XMLHttpRequest

                      :  自动转换JSON数据

ajax技术      :实现了网页的局部数据刷新,核心使用XMLHttpRequest,对个请求之间如果有先后关系的话,就会出现回调地狱。
                   :Jquery ajax是对原生XHR的封装,并添加了JSONP的支持.

                  :  提高了性能和速度减少了客户端和服务器之间的流量传输,同时减少了双方响应的时间,响应更快,因此提高了性能和速度

                  : 针对MVC的编程,不符合现在前端MVVM的思想

                  :  Ajax应用程序中的安全性较低(容易收到CSRF和XSS攻击),因为所有文件都是在客户端下载的

Fetch         :Fetch是基于promise设计的。Fetch的代码结构比起ajax简单多了,参数有点像jQuery ajax。但是,fetch不是ajax的进一步封装,而是原生js,没有使用XMLHttpRequest对象

                  :fetch默认不会带cookie,需要添加配置项

2

 什么是函数防抖和函数节流?

函数防抖:对于频繁触发的事件,如果只希望其最后一次(或第一次)执行绑定函数的执行,则需要使用函数防抖。

函数节流:对于频繁触发的事件,希望其按照一定的频率进行绑定函数调用,则使用函数节流。

函数防抖和节流都可以通过settimeout实现。

3, 栈和队列的区别是什么?js中怎样实现栈结构?

栈和队列都是线型数据结构.

栈只有一个入口,同时也是出口,所以数据遵循先进后出,后进先出的规则。

队列一侧是入口,另一侧是出口,所以数据先进先出,后进后出。

Js中的数组可以实现栈和队列。Push和pop方法是一对栈操作,push和shift是一对队列操作。

4, Css文件中@import,@font-face,@keyframes,@media这4个关键字的作用是什么?

@import,导入另一个css文件,

@font-face,导入一个字体文件,

@keyframes声明一个关键帧动画,

@media声明一个媒体查询条件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值