常见的前端开发面试题(附答案)DreamTraveler

1.讲讲输入完网址按下回车,到看到网页这个过程中发生了什么

a.域名解析

b.发起TCP的3次握手

e.浏览器解析html代码,并请求html代码中的资源

f.浏览器对页面进行渲染呈现给用户

2.谈谈你对前端性能优化的理解

a.请求数量:合并脚本和样式表,CSSSprites,拆分初始化负载,划分主域

b.请求带宽:开启GZip,精简JavaScript,移除重复脚本,图像优化,将icon做成字体

c.缓存利用:使用CDN,使用外部JavaScript和CSS,添加Expires头,减少DNS查找,配置ETag,使AjaX可缓存

d.页面结构:将样式表放在顶部,将脚本放在底部,尽早刷新文档的输出

e.代码校验:避免CSS表达式,避免重定向

3.前端MV*框架的意义

早期前端都是比较简单,基本以页面为工作单元,内容以浏览型为主,也偶尔有简单的表单操作,基本不太需要框架。

随着AJAX的出现,Web2.0的兴起,人们可以在页面上可以做比较复杂的事情了,然后前端框架才真正出现了。

如果是页面型产品,多数确实不太需要它,因为页面中的JavaScript代码,处理交互的绝对远远超过处理模型的,但是如果是应用软件类产品,这就太需要了。

长期做某个行业软件的公司,一般都会沉淀下来一些业务组件,主要体现在数据模型、业务规则和业务流程,这些组件基本都存在于后端,在前端很少有相应的组织。

从协作关系上讲,很多前端开发团队每个成员的职责不是很清晰,有了前端的MV框架,这个状况会大有改观。

之所以感受不到MV*框架的重要性,是因为Model部分代码较少,View的相对多一些。如果主要在操作View和Controller,那当然jQuery这类库比较好用了。

4.请简述盒模型

IE6盒子模型与W3C盒子模型。

文档中的每个元素被描绘为矩形盒子。盒子有四个边界:外边距边界margin,边框边界border,内边距边界padding与内容边界content。

CSS3中有个box-sizing属性可以控制盒子的计算方式,

content-box:padding和border不被包含在定义的width和height之内。对象的实际宽度等于设置的width值和border、padding之和。(W3C盒子模型)

border-box:padding和border被包含在定义的width和height之内。对象的实际宽度就等于设置的width值。(IE6盒子模型)

5.请你谈谈Cookie的弊端

a.每个特定的域名下最多生成的cookie个数有限制

b.IE和Opera会清理近期最少使用的cookie,Firefox会随机清理cookie

c.cookie的最大大约为4096字节,为了兼容性,一般不能超过4095字节

d.安全性问题。如果cookie被人拦截了,那人就可以取得所有的session信息。

6.浏览器本地存储

在HTML5中提供了sessionStorage和localStorage。

sessionStorage用于本地存储一个会话(session)中的数据,这些数据只有在同一个会话中的页面才能访问并且当会话结束后数据也随之销毁,是会话级别的存储。

localStorage用于持久化的本地存储,除非主动删除数据,否则数据是永远不会过期的。

7.webstorage和cookie的区别

a.Cookie的大小是受限的

b.每次你请求一个新的页面的时候Cookie都会被发送过去,这样无形中浪费了带宽

c.cookie还需要指定作用域,不可以跨域调用

d.WebStorage拥有setItem,getItem等方法,cookie需要前端开发者自己封装setCookie,getCookie

e.Cookie的作用是与服务器进行交互,作为HTTP规范的一部分而存在,而WebStorage仅仅是为了在本地“存储”数据而生

f.IE7、IE6中的UserData通过简单的代码封装可以统一到所有的浏览器都支持webstorage

8.对BFC规范的理解

BFC全称是BlockFormattingContext,即块格式化上下文。它是CSS2.1规范定义的,关于CSS渲染定位的一个概念。

BFC是页面CSS视觉渲染的一部分,用于决定块盒子的布局及浮动相互影响范围的一个区域。

BFC的一个最重要的效果是,让处于BFC内部的元素与外部的元素相互隔离,使内外元素的定位不会相互影响。

利用BFC可以闭合浮动,防止与浮动元素重叠。

9.线程与进程的区别

a.一个程序至少有一个进程,一个进程至少有一个线程

b.线程的划分尺度小于进程,使得多线程程序的并发性高

c.进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率

d.每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制

e.多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配

a.尽量减少页面中重复的HTTP请求数量

b.服务器开启gzip压缩

c.css样式的定义放置在文件头部

d.Javascript脚本放在文件末尾

e.压缩合并Javascript、CSS代码

f.使用多域名负载网页内的多个文件、图片

11.你都使用哪些工具来测试代码的性能?

JSPerf,Dromaeo

12.你遇到过比较难的技术问题是?你是如何解决的?

13.你常使用的库有哪些?常用的前端开发工具?开发过什么应用或组件?

14.列举IE与其他浏览器不一样的特性?

a.IE的排版引擎是Trident(又称为MSHTML)

b.Trident内核曾经几乎与W3C标准脱节(2005年)

c.Trident内核的大量Bug等安全性问题没有得到及时解决

d.JS方面,有很多独立的方法,例如绑定事件的attachEvent、创建事件的createEventObject等

e.CSS方面,也有自己独有的处理方式,例如设置透明,低版本IE中使用滤镜的方式

15.什么叫优雅降级和渐进增强?

渐进增强progressiveenhancement:

针对低版本浏览器进行构建页面,保证最基本的功能,然后再针对高级浏览器进行效果、交互等改进和追加功能达到更好的用户体验。

优雅降级gracefuldegradation:

一开始就构建完整的功能,然后再针对低版本浏览器进行兼容。

区别:

a.优雅降级是从复杂的现状开始,并试图减少用户体验的供给

b.渐进增强则是从一个非常基础的,能够起作用的版本开始,并不断扩充,以适应未来环境的需要

c.降级(功能衰减)意味着往回看;而渐进增强则意味着朝前看,同时保证其根基处于安全地带

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

a.html5websoket

b.WebSocket通过Flash

d.XHRMultipartStreaming

e.不可见的Iframe

17.对前端界面工程师这个职位是怎么样理解的?

a.前端是最贴近用户的程序员,前端的能力就是能让产品从90分进化到100分,甚至更好

b.参与项目,快速高质量完成实现效果图,精确到1px;

c.与团队成员,UI设计,产品经理的沟通;

d.做好的页面结构,页面重构和用户体验;

e.处理hack,兼容、写出优美的代码格式;

f.针对服务器的优化、拥抱最新前端技术。

18.你在现在的团队处于什么样的角色,起到了什么明显的作用?

请自行根据自己情况做回答,这个没有统一标准答案。

19.你的优点是什么?缺点是什么?

请自行根据自己情况做回答,这个没有标准答案。

20.如何管理前端团队

21.最近在学什么?能谈谈你未来3,5年给自己的规划吗?

22.平时如何管理你的项目?

a.先期团队必须确定好全局样式(globe.css),编码模式(utf-8)等;

b.编写习惯必须一致(例如都是采用继承式的写法,单样式都写成一行);

c.标注样式编写人,各模块都及时标注(标注关键样式调用的地方);

d.页面进行标注(例如页面模块开始和结束);

e.CSS跟HTML分文件夹并行存放,命名都得统一(例如style.css);

f.JS分文件夹存放命名以该JS功能为准的英文翻译。

g.图片采用整合的images.pngpng8格式文件使用尽量整合在一起使用方便将来的管理

23.说说最近最流行的一些东西吧?常去哪些网站?

CSDN、SegmentFault、php.net、MDN、css参考手册、iconfont、

underscore、github、Bootstrap、W3Shool、W3Cplus、caniuse

24.请解释一下JavaScript的同源策略

同源策略指的是:协议,域名,端口相同,同源策略是一种安全协议。

25.AMD和CMD规范的区别?

AMD提前执行依赖-尽早执行,requireJS是它的实现

CMD按需执行依赖-懒执行,seaJS是它的实现

26.网站重构的理解

重构:在不改变外部行为的前提下,简化结构、添加可读性,而在网站前端保持一致的行为。

a.使网站前端兼容于现代浏览器(针对于不合规范的CSS、如对IE6有效的)

b.对于移动平台的优化,针对于SEO进行优化

c.减少代码间的耦合,让代码保持弹性

d.压缩或合并JS、CSS、image等前端资源

27.浏览器的内核分别是什么

IE浏览器的内核Trident;

Mozilla的Gecko;

Chrome的Blink(WebKit的分支);

Opera内核原为Presto,现为Blink;

28.请介绍下cache-control

每个资源都可以通过Cache-ControlHTTP头来定义自己的缓存策略

Cache-Control指令控制谁在什么条件下可以缓存响应以及可以缓存多久

Cache-Control头在HTTP/1.1规范中定义,取代了之前用来定义响应缓存策略的头(例如Expires)。

29.前端页面有哪三层构成,分别是什么?作用是什么?

a.结构层:由HTML或XHTML之类的标记语言负责创建,仅负责语义的表达。解决了页面“内容是什么”的问题。

b.表示层:由CSS负责创建,解决了页面“如何显示内容”的问题。

c.行为层:由脚本负责。解决了页面上“内容应该如何对事件作出反应”的问题。

30.知道的网页制作会用到的图片格式有哪些?

png-8,png-24,jpeg,gif,svg

Webp:谷歌(google)开发的一种旨在加快图片加载速度的图片格式。图片压缩体积大约只有JPEG的2/3,并能节省大量的服务器带宽资源和数据空间。FacebookEbay等知名网站已经开始测试并使用WebP格式。

Apng:全称是“AnimatedPortableNetworkGraphics”,是PNG的位图动画扩展,可以实现png格式的动态图片效果。04年诞生,但一直得不到各大浏览器厂商的支持,直到日前得到iOSsafari8的支持,有望代替GIF成为下一代动态图标准。

31.一次js请求一般情况下有哪些地方会有缓存处理?

a.浏览器端存储

b.浏览器端文件缓存

c.HTTP缓存304

d.服务器端文件类型缓存

e.表现层&DOM缓存

32.一个页面上有大量的图片(大型电商网站),加载很慢,你有哪些方法优化这些图片的加载,给用户更好的体验[性能优化]。

a.图片懒加载,滚动到相应位置才加载图片。

b.图片预加载,如果为幻灯片、相册等,将当前展示图片的前一张和后一张优先下载。

c.使用CSSsprite,SVGsprite,Iconfont、Base64等技术,如果图片为css图片的话。

d.如果图片过大,可以使用特殊编码的图片,加载时会先加载一张压缩的特别厉害的缩略图,以提高用户体验。

THE END
1.你们常用的Web开发工具都有什么?分享我常用的5大Web开发工具作为Web开发人员,无论是全栈,前端还是后端,在某些时候我都必须要测试,调试或设计API,并且有许多出色的工具可以在此过程中为我提供支持。我最喜欢的是Postman,它让我可以将所有API文档,示例和可以与团队共享的预配置请求集中在一个地方。真的对我很大有帮助。现在有一些其他选择,例如Insomnia,但我还没有尝试过, posthttps://www.528045.com/article/193c9fe0bb.html
2.揭秘大厂web设计神器,7款高效软件开启界面创意之旅在当今竞争激烈的互联网行业,web 界面设计的质量直接影响着用户体验和产品的成功与否。大厂设计师们凭借其丰富的经验和敏锐的审美,往往能够打造出令人惊艳的 web 界面。而他们背后,离不开一些强大且高效的设计软件工具。以下是大厂设计师们常用的 7 款 web 界面设计软件。 https://m.sohu.com/a/837537105_121967972
3.常用的快速Web原型图设计工具有哪些?无论是桌面软件、Web网站还是移动APP界面,原型设计都是产品设计流程中非常重要的一环,原型设计在一定程度上是为了说明用户将如何与产品进行交互,用来展现更初的产品设想,起到直观展示和有效沟通的作用。那么有哪些常用的WEB原型设计工具呢? Web原型图设计工具一览 https://www.adinnet.cn/bloginfo/2018_03/blog_3497.html
4.java开发管理经验都问哪些问题java开发经理面试题自我介绍首先描述自己的基本情况,其次是描述自己的技术亮点,做过的亮点项目或产品。如果没有做过有技术亮点的事,每天都在做增删改查功能或重复性的工作,需要好好反思下,这样下去技术上没有多少增长。如果工作中就是做这个怎么办?可以考虑利用业余时间参与开源项目或自己做一些工具或框架。 https://blog.51cto.com/u_16099205/10527147
5.常用的网页制作软件有哪些网站制作工具大全→MAIGOO知识WebStorm Frontpage HBuilder WampServer visualstudio eclipse 优秀的网页设计模板 网站模型设计工具 常用的网页制作软件有哪些 1、Dreamweaver 就目前来说,使用最多的静态网站的制作工具有dream weaver,软件直接搜索就可以找到并下载了。 经过重新设计的ui dream weaver更加的好用。 https://www.maigoo.com/goomai/189945.html
6.前端最新20款Web设计和开发工具推荐这篇文章中,收集了20个Web设计和开发工具推荐给大家,这些工具都是免费的在线工具,不需要烦心安装和更新,感谢这些工具的作者为我们提供这么有用的工具。 1. X-Icon Editor X-Icon Editor是一款帮助你在线创建高分辨率图标的HTML5应用。 2. 520 Grid System https://segmentfault.com/a/1190000000381051
7.常用的网页设计软件有哪些Firworks是Adobe推出的一款网页作图软件,软件可以加速Web设计与开发,是一款创建与优化Web图像和快速构建网站与Web界面原型的理想工具。 FrontPage Frontpage,是微软公司出品的一款网页制作入门级软件。FrontPage使用方便简单,会用Word就能做网页,所见即所得是其特点,该软件结合了设计、程式码、预览三种模式。微软在2006年年https://www.oh100.com/kaoshi/web/380659.html
8.响应式Web设计:HTML5和CSS3实战(第2版)工具和文本编辑器 第一个响应式的例子 视口meta标签的重要意义 怎么让图片随窗口缩放 用CSS3媒体查询定义断点 前面例子的不足之处 为什么学习之旅才刚刚开始 1.2 什么是响应式Web设计 “响应式Web设计”这个名字是Ethan Marcotte在2010年发明的。当时,他在A List Apart上写了一篇文章(http://www.alistapart.comhttps://www.ituring.com.cn/book/tupubarticle/12726
9.29款免费的WEB设计中的顶级CSS工具和应用Web标准教程CSSMorf.js 提供了一组 JavaScript 方法用于加速 CSS3 的各种转换效果,支持的方法都在上图中,无需编写 CSS3 代码。 9. Gumby Gumby 是一个响应式的以及 960 像素宽度的 CSS 网格框架,支持 PC、平板和手机屏幕显示。类似 Twitter 的 Bootstrap,它包括一个Web UI工具包,有好看按钮,表格,导航+标签和一个很小的https://www.jb51.net/css/61538.html
10.Codeuml首页文档和下载基于Web的UML设计工具Codeuml 是一个基于Web的UML设计工具,你可以用一种特定的语言编写图例,并快速输出图形。它比用任何图形化设计工具点击鼠标去拖拽元素和连接元素都更有效率。Codeuml 使用开源的 plantuml 引擎来将文本转成 UML图例 。https://www.oschina.net/p/codeuml
11.web界面设计用什么软件web界面设计用什么软件2023-10-21 精选回答 Web界面设计常用软件工具有Sketch、Photoshop、Mockplus、Zeplin、After Effects、Illustrator、C4D、Principle、Keynote、Flinto、XMind等。 每个软件都有自己的优势,可以结合具体设计需求选择对应的软件。 Sketch 一款强大的界面设计工具,专为UI设计师打造的软件,可让你的界面https://wap.hxsd.com/wenda/62517/
12.图形化web页面设计工具web网页制作代码微软公司开发设计的网页制作专用工具Expression Web,做为网页制作专用工具FrontPage的代替品,在作用及其扩展性层面都是有了非常大提高,它彻底消除了之前FrontPage会造成不规范网页源代码的缺陷,如今用Expression Web能够建立彻底符合规定的网址,与此同时适用全新的CSS和层,具备强劲的CSS作用,Expression Web适用asp.net2.0和XMhttps://www.dkewl.com/course/detail7587.html
13.每个开发人员都应知道的10个网页设计工具!在当今飞速发展的数字时代,引人注目的在线形象对于企业和创作者来说都至关重要。合适的网页设计工具可以简化创作过程,并能帮助我们打造出令人惊叹、用户友好的网站。 无论你是经验丰富的设计师还是刚刚起步,本文都会探讨十种最佳的网页设计工具,每种工具都具有独特的功能和能力,可帮助您将愿景变为现实。从直观的设计软https://www.21cto.com/article/9824568661670209
14.web原型设计工具适用于Web设计人员的13+种原型设计工具首先,向利益相关者和客户提出想法似乎很轻松,但是当事情变得困难时,我们需要工具来帮助加快反馈过程。 对于前端设计师而言,Web变得越来越复杂,具有越来越多的交互式请求。 滑动和拖动之类的动作只是冰山一角,弄清楚整个谜题如何组合在一起才是原型制作真正的艺术所在。 https://blog.csdn.net/daique1908/article/details/106948030/
15.82个Web开发者工具汇总今天,我们将分享82个用于 Web 开发和设计的实用工具和库。希望这些工具可以提升的开发效率,同时,也可以帮助您更好的学习前端开发。 01、Day.js 地址:https://day.js.org/en/ Day.js 是一个极简的 Javascript 库,大小只有大约 2Kb。 它可以在浏览器和 NodeJs(服务器端)上工作。 https://www.360doc.cn/mip/1013532789.html
16.全面Web化!2024年UI设计师必会工具清单时光如梭,笔者在UI / UX设计领域从业已经超过10年了。回想早期设计师们的主要工具都是单机软件(如Sketch、Photoshop等),其他工具主要都是围绕它们的一些插件。而10年后,整个设计行业已经明显接受了工具Web化的模式,各种设计场景的解决方案均开始使用Web-App作为新的载体。 https://www.douban.com/doubanapp/dispatch?uri=%2Fnote%2F864220417%3F%26
17.12个Web设计师必备的Bootstrap工具Bootstrap这个平台有很多非常有用的工具,它们都有非常棒的功能。前一些天,我们为开发者分享了一些最好的bootstrap框架,今天,我们搜集了一些互联网上最好的bootstrap的工具分享给大家。 1)Easel 2)Layoutit Layoutit 是一个无需精通Javascript,HTML5,CSS3就可以用来帮助你更容易地编写前端代码的非常实用的工具. https://www.open-open.com/lib/view/open1402753071072.html
18.蓝湖VSAxure:哪个是您Web界面设计工作的最佳选择?蓝湖和Axure都是设计领域中常用的工具,它们都能够实现设计稿的展示和交互效果,但两者在设计和使用方式上存在一些区别。本文将从功能、优缺点、学习难度、使用场景等方面对蓝湖和Axure进行比较分析,并探讨在不同设计场景下,选择使用哪个工具更为合适。 一、功能比较 https://www.yutu.cn/news_52227.html
19.Spline最好用的可交互3DWeb体验设计工具Spline是一款3D设计工具,可以以2D的方式进行3D设计,无需3D设计基础,除添加基础的3D模型调整编辑外,还提供丰富的在线3D模型库搜索使用,模型可添加多个状态,支持设置鼠标经过、点击等交互动作来控制状态切换,文件导出方面除导出静态图片外可免费导出离线网页,离线网页可以通过浏览器直接打开,也可以对网页代码进行二次编辑。https://xdcns.com/zuixindongtai/526.html
20.电脑网页设计软件大全常见的网页制作工具有哪些页面制作需要通过设计软件来制作原型,而不少用户咨询网页制作工具有哪些?所以小编这里带来网页设计软件大全,整合常见的页面设计工具下载,每一款都能让你在辅助设计领域得心应手,提升设计效率。https://www.3h3.com/k/WebsiteDesignSoftwareDownload/