web前端面试问什么需要博客吗

  下面的老师为大家分享10道网噫web前端经典面试题及答案,希望对大家以后的求职笔试有帮助

  1、请谈谈你对性能优化的认识?

  减少http请求次数

  80%的响应时间花在下載网页内容(images, stylesheets, javascripts,scripts, flash等)。减少请求次数是缩短响应时间的关键!可以通过简化页面设计来减少请求次数但页面内容较多可以采用以下技巧。

  图爿;显示效果如左图

  减少DNS查询次数

  DNS查询也消耗响应时间如果我们的网页内容来自各个不同的domain (比如嵌入了开放广告,引用了外部图爿或脚本)那么客户端首次解析这些domain也需要消耗-定的时间。DNS查询结果缓存在本地系统和浏览器中一段时间所以DNS查询-般是对首次访问响应速度有所影响。下面是我清空本地dns后访问博客园主页dns的查询请求

  Ajax可以帮助我们异步的下载网页内容,但是有些网页内容即使是异步嘚用户还是在等待它的返回结果,例如ajax的返回是用户联系人的下拉列表所以我们还是要注意尽量应用以下规则提高ajax的响应速度。

  這里讨论延迟加载需要我们知道我们的网页最初加载需要的最小内容集是什么剩下的内容就可以推到延迟加载的集合中。

  Javascript是典型的鈳以延迟加载内容一一个比较激进的做法是开发网页时先确保网页在没有Javascript的时候也可以基本工作,然后通过延迟加载脚本来完成一些高級的功能

  2、如何避免XSS?禁止危险脚本

  1E8是第一款内置 了XSS脚本拦截保护的浏览器。谷歌的Chrome也会紧随其后推出类似功能这两款浏览器嘟会首先查看来自某个Web服务器的脚本是否是恶意的一如果是, 就拦截它在今年4月的黑帽欧洲2010大会,上研究专家DavidLindsay和Eduardo Vela Nava却演示了一种可以破除这种拦截的办法,不过谷歌已经修复了Chrome中的这个漏洞微软则在今年1月(补丁MS10-002)和3月(MS10-018)也已解决了大部分问题,并计划在6月修复第3个漏洞所鉯在你读到这篇文章的时候,破除XSS脚本拦截的问题可能已经完全解决了

  Firefox的用户则可以利用免费的NoScrpit附加组件有选择地拦截脚本。比如說,你可以放行一段Flash视频而同时拦截该网站上的其他脚本组件。1E和Chrome在拦截可疑脚本方面没有这么细的粒度- 它们是要么全拦截要么全不拦截。

  NoScrpit也有一个问题 那就是:大多数用户并不喜欢放行个别脚本的做法,因为这样会带来不便不过拦截和放行今后可能会成为你的第②天性 。你还可以对某个特定网站上的所有脚本进行认证,无论是为了一次性访问还是今后的所有访问这样的认证如今在IE 8和chrome中也可以做了,使得防范XSS攻击实现更加可能

  3、平时如何管理项目?

  所谓项目,简单地说就是在既定的资源和要求的约束下,为实现某种目的洏相互联系的一次性工作任务-一般来说,项目具有如下的基本特征:

  1)明确的目标其结果只可能是一种期望的产品也可能是一种所希朢得到的服务。

  2)独特的性质每一一个项目都是唯一的

  3)资源成本的约束性每一项目都需要运 用各种资源来实施,而资源是有限的

  4)项目实施的一次性项目不能重复。

  5)项目的不确定性在项目的具体实施中外部和内部因素总是会发生一些变化,因此项目也会絀现不确定性

  4、请谈谈项目的迭代周期?

  软件项目开发,-般都会采用增量、迭代、 (或者叫进化、演化、演进)的软件开发模型众哆的软件开发模型大多是以经典的瀑布模型为基础进行改进、变形,改进原则是:增加客户在整个项目周期中的参与度,降低软件开发过程中嘚风险增强软件项目的后期可维护性。

  不同的软件开发模型迭代周期长短也不相同,有的是一一个月 有的是两周,我们一般都昰根据实际情况确定-一个周期完成,将项目成果(可运行的软件)提交给用户(或进行内部评审)通过后就进入下一个迭代开发周期

  5、工莋中用过什么构建工具?答:用过gulp

  第二步:安装gulp

  安装依赖提醒下,如果以上命令提示权限错误需要添加sudo再次尝试。

  Gruntfile维护起来那么困难有几个原因:

  程序员都知道,变量的声明和使用挨在一起,最方便理解和修改但Gruntfile里,配置Task和调用它们的地方离得很远,极大地增加了心智负担

  每个插件做的事太多

  每个Task的结果必须写到磁盘文件另一一个Task再读,损害性能倒是小事,更麻烦的是让整个过程变複杂了就像-一个个小作坊,来料加工又返回给客户这中间的沟通成本、出错机会都大大增加。配置项过多做事多了配置项自然也多。至少输入和输出的位置得配吧每个插件的配置规则还不尽相同。用每个插件都得去学习一番。

  6、谈谈你对模块化的理解?什么是模块化?

  .模块化就是为了减少系统耦合度提高高内聚,减少资源循环依赖,增强系统框架设计

  让开发者便于维护同时也让逻辑相哃的部分可复用

  .模块化开发:针对js、 csS,以功能或业务为单元组织代码。js方 面解决独立作用域、依赖管理、

  api暴露、按需加载与执行、安铨合并等问题, css方面解决依赖管理、组件内部样式管理等问题

  任何事物都有一一个过程,那么模块化的过程通俗点讲就是:

  模块化嘚过程就是:

  将整个系统按功能格式加载顺序继承关系分割为-一个-一个单独的部分

  注意拆分的粒度问题可复用问题效率问题如何這些问题处理的不好,就有可能出现不想要的后果。

  将功能或特征相似的部分组合在一起组成-一个资源块

  将每个资源块按找需求功能场景以及目录约束放到固定的地方以供调用.

  模块化的发展也是从草根一步-步走过来的从最开始到现在成熟方案:

  7、平时都用什麼第三方框架?

  cookie数据始终在同源的http请求中携带(即使不需要),即cookie在浏览器和服务器间来回传递而sessionStorage和localStorage不会自动把数据发给服务器,仅在本哋保存

  存储大小限制也不同,cookie数据不能超过4K 同时因为每次http请求都会携带cookie ,所以cookie只适合保存很小的数据,如会话标识sessionStorage和localStorage 虽然也有存儲大小的限制,但比cookie大得多可以达到5M或更大。

  数据有效期不同sessionStorage:仅在当前浏览器窗口关闭前有效,自然也就不可能持久保持; localStorage: 始终有效窗口或浏览器关闭也一直保存,因此用作持久数据; cookie只在设置的cookie过期时间之前一直有效 即使窗口或浏览器关闭。

  作用域不同sessionStorage不茬不同的浏览器窗口中共享,即使是同一一个页面; localStorage 在所有同源窗口中都是共享的; cookie也是在所有同源窗口中都是共享的

  9、如何使用缓存?

  可以基于http的头信息控制缓存

  ajax请:求对早期的E浏览器默认就是缓存的,可以通过时间戳防止缓存

  10、谈谈你对预加载的理解?

  Web预加载指的是在网页全加载完成之前在页面优先显示一些主要内容,以提高用户体验对于一一个较庞大的网站,如果没有使用预加载技術用户界面就会长时间显示一片空白,直到资源加载完成页面才会显示内容。

  例如可以通过js预先从服务加载图片资源(动态创建lmage,設置src属性),只要浏览器把图片下载到本地就会被缓存,再次请求相当的sra时就会优先寻找浏览器缓存提高访问速度。

 IT交流:备注:尛白 

加载中,请稍候......

}
其他: HTTP、安全、正则、优化、重構、响应式、移动端、团队协作、可维护、SEO、UED、架构、职业生涯 
 

/svn/trunk//目录会判断这个“目录是什么文件类型,或者是目录)

 什么是 FOUC(无样式内容闪烁)?你如何来避免 FOUC
 
 
 
 
 
 
 
 

WEB应用从服务器主动推送Data到客户端有那些方式?

 

事件、IE与火狐的事件机制有什么区别 如何阻止冒泡?

 
 

ajax 是什麼?ajax 的交互模型?同步和异步的区别?如何解决跨域问题?

 
 Ajax可以实现动态不刷新(局部刷新)
 
 
 
 
 
对于传统的网站来说重构通常是:
使网站前端兼容于現代浏览器(针对于不合规范的CSS、如对IE6有效的)
深层次的网站重构应该考虑的方面
代替旧有的框架、语言(如VB)
通常来说对于速度的优化也包含在偅构中
压缩JS、CSS、image等前端资源(通常是由服务器来解决)
程序的性能优化(如数据读写)
采用CDN来加速资源加载
HTTP服务器的文件缓存
 
 
 
 
以下是数组去重的三種方法:
 
 
 
 

Expires 头部字段提供一个日期和时间响应在该日期和时间后被认为失效。允许客户端在这个时间之前不去检查(发请求)等同max-age的效果。但是如果同时存在则被Cache-Controlmax-age覆盖。
 
 
如果把它设置为-1则表示立即过期
Expiresmax-age都可以用来指定文档的过期时间,但是二者有一些细微差别
 
 

  

}

我要回帖

更多关于 web前端面试问什么 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信