image

编辑人: 未来可期

calendar2025-02-06

message4

visits291

阿里巴巴前端工程师一面面试经历及题目

/*1.AngularJs中双向数据绑定的原理?

答:每次绑定一些东西到UI上时就会往$watch队列里插入一条$watch,当浏览器接收到可以被angular

context处理的事件时,$digest循环就会触发,$digest将会遍历我们的$watch,这就是所谓的dirty-checking

。既然所有的$watch都检查完了,那就要问了:有没有$watch更新过?如果有至少一个更新过,这个循环就会

再次触发,直到所有的$watch都没有变化。这样就能够保证每个model都已经不会再变化。记住如果循环超过10

次的话,它将会抛出一个异常,防止无限循环。 当$digest循环结束时,DOM相应地变化。

2.CDN实现原理?

答:CDN的全称是Content Delivery Network,即内容分发网络。其基本思路是尽可能避开互

联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各

处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据

网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向

离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,

提高用户访问网站的响应速度。

3.浏览器缓存方式?

答:一、http缓存

  http缓存是基于HTTP协议的浏览器文件级缓存机制。即针对文件的重复请求情况下,浏览器可以根据协议头

判断从服务器端请求文件还是从本地读取文件,chrome控制台下的Frames即展示的是浏览器的http文件级缓存。

以下是浏览器缓存的整个机制流程。主要是针对重复的http请求,在有缓存的情况下判断过程主要分3步:

a.判断expires,如果未过期,直接读取http缓存文件,不发http请求,否则进入下一步

b.判断是否含有etag,有则带上if-none-match发送请求,未修改返回304,修改返回200,否则进入下一步

c.判断是否含有last-modified,有则带上if-modified-since发送请求,无效返回200,有效返回304,

否则直接向服务器请求

二、websql

   websql这种方式只有较新的chrome浏览器支持,并以一个独立规范形式出现,主要有以下特点

Web Sql 数据库API 实际上不是HTML5规范的组成部分;

在HTML5之前就已经存在了,是单独的规范;

它是将数据以数据库的形式存储在客户端,根据需求去读取;

跟Storage的区别是: Storage和Cookie都是以键值对的形式存在的;

Web Sql 更方便于检索,允许sql语句查询;

让浏览器实现小型数据库存储功能;

这个数据库是集成在浏览器里面的,目前主流浏览器基本都已支持;

三、indexDB

  IndexedDB 是一个为了能够在客户端存储可观数量的结构化数据,并且在这些数据上使用索引进行

高性能检索的 API。虽然 DOM 存储 对于存储少量数据是非常有用的,但是它对大量结构化数据的存储就

显得力不从心了。IndexedDB 则提供了这样的一个解决方案。

四、cookie

  Cookie(或者Cookies),指一般网站为了辨别用户身份、进行session跟踪而储存在用户本地终端

上的数据(通常经过加密)。cookie一般通过http请求中在头部一起发送到服务器端。一条cookie记录主

要由键、值、域、过期时间、大小组成,一般用户保存用户的认证信息。cookie最大长度和域名个数由不同浏览器决定

五、localstorage

六、sessionstorage

七、application cache

  application cahce是将大部分图片资源、js、css等静态资源放在manifest文件配置中。

当页面打开时通过manifest文件来读取本地文件或是请求服务器文件。离线访问对基于网络的应用

而言越来越重要。虽然所有浏览器都有缓存机制,但它们并不可靠,也不一定总能起到预期的作用。

HTML5 使用ApplicationCache 接口可以解决由离线带来的部分难题。前提是你需要访问的web

页面至少被在线访问过一次.使用缓存接口可为您的应用带来以下三个优势:

离线浏览 -- 用户可在离线时浏览您的完整网站

速度 -- 缓存资源为本地资源,因此加载速度较快。

服务器负载更少 -- 浏览器只会从发生了更改的服务器下载资源。

4.js、css缓存?

答:一般浏览器会自动缓存

application cahce是将大部分图片资源、js、css等静态资源放在manifest文件配置中。

5.跨域jsonp安全性?如何防止不安全操作?

答:可能会遭受CSRF/XSRF的攻击

6、canvas有关方法?

答:getContext() 返回一个用于在画布上绘图的环境。

fillStyle 设置或返回用于填充绘画的颜色、渐变或模式

strokeStyle 设置或返回用于笔触的颜色、渐变或模式

lineWidth 设置或返回当前的线条宽度

rect() 创建矩形

fillRect() 绘制"被填充"的矩形

strokeRect() 绘制矩形(无填充)

clearRect() 在给定的矩形内清除指定的像素

fill() 填充当前绘图(路径)

stroke() 绘制已定义的路径

beginPath() 起始一条路径,或重置当前路径

moveTo() 把路径移动到画布中的指定点,不创建线条

closePath() 创建从当前点回到起始点的路径

lineTo() 添加一个新点,然后在画布中创建从该点到最后指定点的线条

fillText() 在画布上绘制"被填充的"文本

strokeText() 在画布上绘制文本(无填充)

drawImage() 向画布上绘制图像、画布或视频

arc(x,y,r,start,stop) 在canvas中绘制圆形

7.node.js的express框架?

*/



创作类型:
原创

本文链接:阿里巴巴前端工程师一面面试经历及题目

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。
分享文章
share