web前端开发面试题汇总模板

合集下载

前端面试题八股文

前端面试题八股文

前端面试题八股文总结前端面试八股文是指在面试过程中经常被问到的问题,大多都有固定化、格式化的答案。

可以认为是“送分题”,前提是花时间背下来。

下面总结了一些经典的面试八股文。

HTML + CSS1.讲一下盒模型,普通盒模型和怪异盒模型有什么区别?2.块元素和行内元素区别是什么?常见块元素和行内元素有哪些?3.HTML语义化标签有哪些?4.伪类和伪元素的区别是什么?5.CSS如何实现垂直居中?6.CSS常见的选择器有哪些?7.CSS的优先级如何计算?8.长度单位px、em和rem的区别是什么?9.讲一下flex弹性盒布局?10.浮动塌陷问题解决方法是什么?11.position属性的值有哪些?各个值是什么含义?12.BFC、IFC是什么?JavaScript1.谈谈对原型链的理解。

2.js如何实现继承?3.js有哪些数据类型?4.js有哪些判断类型的方法?5.如何判断一个变量是否数组?6.Null 和 undefined 的区别?、7.call bind apply的区别?8.防抖节流的概念?实现防抖和节流。

9.深拷贝、浅拷贝的区别?如何实现深拷贝和浅拷贝?10.对比一下var、const、let。

11.ES next新特性有哪些?12.箭头函数和普通函数区别是什么?13.使用new创建对象的过程是什么样的?14.this指向系列问题。

15.手写bind方法。

16.谈谈对闭包的理解?什么是闭包?闭包有哪些应用场景?闭包有什么缺点?如何避免闭包?17.谈谈对js事件循环的理解?18.谈谈对promise理解?19.手写 Promise。

20.实现 Promise.all方法。

21.Typescript中type和interface的区别是什么?22.讲讲Typescript中的泛型?23.Typescript如何实现一个函数的重载?24.CmmonJS和ESM区别?25.柯里化是什么?有什么用?怎么实现?26.讲讲js垃圾回收机制。

web前端面试题(一)

web前端面试题(一)

web前端⾯试题(⼀)1 选择题1.1 默认情况下,使⽤P标记会形成什么效果()A.在⽂字P所在位置中加⼊8个空格B.P后⾯的⽂字会变成粗体C.开始新的⼀⾏D.P后⾯的⽂字会变成斜体答案: C1.2 META元素的作⽤是什么()A.META元素⽤于表达HTML⽂档的格式B.META元素⽤于指定相关HTML⽂档的信息C.META元素⽤于实现本页的⾃动刷新D.以上都不对答案:B1.3 我们在HTML页⾯中制作了⼀个图像,想要在⿏标指向这个图像时浮出⼀条信息,应该使⽤哪个参数做()A.POPB.SRCC.ALTD.MSG答案:C1.4 使⽤以下哪⼀种元素可以将声⾳添加到⽹页⾥⾯()A.soundB.bgsoundC.musicD.voice答案:B1.5 以下HTML代码中,哪⼀个是将词语“Hello”显⽰为Verdana字体并且字号为5号的正确代码()A.<font size="5" font="Verdana">Hello</font>B.<font size="5" face="Verdana">Hello</font>C.<font size=5 face=Verdana>Hello</font>D.<font size=5 face="Verdana",text="Hello"</font>答案:B1.6 在<param>标签中,下列哪个属性⽤于给参数传递内容()A.AddressB.ValueC.AmountD.Method答案:B1.7 ⼀个⽂件夹名称叫Parent,其下有⼀个叫做test.asp的⽂件,和⼀个名为Child的⽂件夹。

Child下有⼀个名为default.htm⽂件,想在default.htm中作⼀个连接,链到test.asp。

web前端中级面试题

web前端中级面试题

web前端中级面试题Web前端中级面试题HTML基础•HTML是什么?它是一种什么样的语言?•HTML5相比于HTML4有哪些改进和新增的特性?•什么是语义化标签?为什么要使用语义化标签?•请解释什么是DOCTYPE及其作用。

CSS基础•什么是盒模型?请描述标准盒模型和IE盒模型的区别。

•请解释什么是CSS选择器及其优先级。

•CSS中position属性有哪些取值?请分别描述它们的特点和使用场景。

•请解释CSS的浮动及清除浮动的方法。

JavaScript基础•JavaScript的数据类型有哪些?请描述他们之间的转换规则。

•什么是原型链?请解释JavaScript中的继承原理。

•请描述闭包的概念和优缺点。

•什么是事件冒泡和事件捕获?请描述它们的区别和用法。

前端框架和工具•请列举几个比较流行的JavaScript前端框架,描述它们的特点和适用场景。

•什么是模块化开发?请列举几个常用的JavaScript模块化开发工具。

•请解释什么是异步编程,并举例说明异步编程的用途和常用的处理方式。

•请描述一下的生命周期钩子函数及其执行顺序。

前端性能优化•什么是前端性能优化?请列举一些常见的性能优化方案。

•请解释什么是延迟加载,如何实现延迟加载的效果?•什么是雪碧图?请解释它的原理和优势。

•请列举几个前端性能监控指标,并描述它们的作用。

通信和安全•请解释同源策略及其限制,以及如何实现跨域通信。

•请描述一下HTTP和HTTPS的区别和安全机制。

•什么是XSS攻击?如何防止XSS攻击?•请解释CSRF攻击,以及如何防范CSRF攻击。

代码质量和调试•请解释什么是代码规范,以及为什么要遵守代码规范?•请列举几个常用的前端代码规范工具,并简单描述它们的使用方法。

•请解释什么是调试,以及在开发过程中常用的调试方法。

•请列举个别在开发过程中常见的错误,以及如何进行调试和修复。

面试技巧•在面试过程中,你如何展示你的个人项目和作品集?•你在前端领域中遇到过的最具挑战性的问题是什么?你是如何解决它的?•请解释一下你在团队合作中的角色和贡献。

Web前端中级面试题

Web前端中级面试题

Web前端中级面试题一、不定项选择1. flex属性是下列哪三个属性的缩写?( )A.flex-growB.flex-wrapC.flex-shrinkD.flex-basis2. 下列哪些选项是JavaScript中的假值(Falsy value)?( )A. 0B. ""C. nullD. undefinedE. NaNF. "false"3. 下列选项中,不是window对象的属性的是( )A. pageXB. locationC. historyD. navigator4. 下面程序输出的结果是什么?( )function sayHi() {console.log(name);console.log(age);var name = "Lydia";let age = 21;}sayHi();A: Lydia 和undefinedB: Lydia 和ReferenceErrorC: ReferenceError 和21D: undefined 和ReferenceError5. 下列关于原型的说法错误的是( )A. 原型可以节省内存空间B. 构造函数中的prototype属性,它是一个对象,我们称之为原型C. 原型有constructor属性,原型的constructor属性指向构造函数D. 任何一个对象都有__proto__属性,实例的对象的__proto__属性指向构造函数二、填空题1. JavaScript是由哪几部分组成。

2. 表达式“123abc”-“123”的计算结果是。

3. 写出三种获取DOM元素的方法。

4. [ 1 , 2 , 3 ].map(parseInt) 输出结果为。

5. 请写出以下代码的执行顺序。

console.log(1)const p = new Promise((resolve) => {console.log(2)resolve()})console.log(3)setTimeout(() => {console.log(4)}, 0)p.then(() => console.log(5))setTimeout(() => {console.log(6)}, 0)console.log(7)三、简答题1. 请写出10个数组实例可以调用的方法。

前端工程化面试问题

前端工程化面试问题

前端工程化面试问题一、基础知识1. 请简述一下你对HTML5的理解?HTML5在前端开发中扮演了什么样的角色?2. 什么是CSS,它的主要作用是什么?3. JavaScript的主要特性和应用场景有哪些?4. 请谈谈你对前端框架(如React、Vue、Angular等)的理解。

你可以详细描述一下你熟悉的前端框架的主要特性和使用场景吗?5. 请解释一下什么是前端路由,以及它的实现原理。

6. 请简述一下你对前端工程化的理解,以及它的重要性。

7. 什么是模块化,如何实现前端模块化?8. 请解释一下什么是HTTP和HTTPS,以及他们的区别。

9. 请简述一下你对Webpack的理解,以及它的主要功能和使用场景。

10. 请解释一下什么是DOM,以及它的重要性。

二、进阶知识1. 请解释一下什么是虚拟DOM,以及它与真实DOM的区别和联系。

2. 请谈谈你对前端性能优化的理解,以及你通常采用的前端性能优化方法。

3. 请解释一下什么是CSS预处理器(如Sass、Less等),以及他们的特性和使用场景。

4. 请谈谈你对前端安全性的理解,以及你通常采用的前端安全措施。

5. 请解释一下什么是前端自动化,以及你熟悉的前端自动化工具和框架。

6. 请解释一下什么是前端响应式设计,以及它的实现原理。

7. 请谈谈你对前端组件化的理解,以及你通常采用的前端组件设计和开发方法。

8. 请解释一下什么是Service Worker,以及它的主要功能和使用场景。

9. 请谈谈你对前端模块热替换(Hot Module Replacement)的理解,以及它的主要优点和限制。

10. 请解释一下什么是前端路由懒加载,以及它的实现原理和优点。

三、实战经验1. 请描述一下你在过去的工作中遇到的最大的前端技术挑战,你是如何解决的?2. 请谈谈你在使用前端框架开发中的经验,以及你对其优缺点的理解。

3. 请描述一下你在前端工程化实践中遇到的问题和解决方法。

web前端开发面试题及答案

web前端开发面试题及答案

web前端开发面试题及答案Web前端开发是互联网行业中一个非常热门的领域,涉及到网页设计、开发和用户体验等多个方面。

在面试过程中,面试官通常会提出一系列问题来评估应聘者的专业知识和技能。

以下是一些常见的Web前端开发面试题及答案:1. HTML相关问题- 问:HTML5有哪些新特性?- 答:HTML5引入了新的语义元素如`<header>`, `<footer>`,`<article>`, `<section>`等,增强了表单控件,如`<inputtype="date">`,`<input type="range">`等,支持多媒体内容,如`<video>`和`<audio>`,以及提供了绘图功能`<canvas>`。

2. CSS相关问题- 问:CSS选择器有哪些类型?- 答:CSS选择器主要有以下几种类型:元素选择器、类选择器(如`.class`)、ID选择器(如`#id`)、属性选择器(如`[type="text"]`)、伪类选择器(如`:hover`, `:first-child`)和伪元素选择器(如`::before`, `::after`)。

3. JavaScript相关问题- 问:JavaScript中的闭包是什么?- 答:闭包是指一个函数能够记住并访问其创建时的环境,即使该环境的外部上下文已经执行完毕。

闭包通常用于创建私有变量和方法,或者在回调函数中使用外部变量。

4. 响应式设计相关问题- 问:如何实现响应式网页设计?- 答:实现响应式网页设计主要依赖于CSS媒体查询(Media Queries),通过不同的屏幕尺寸和设备特性来应用不同的样式规则。

同时,使用流体布局(使用百分比而非固定像素)和可伸缩的图片和媒体元素也是关键。

web 高级前端面试题

web 高级前端面试题

web 高级前端面试题
以下是一些高级前端面试题,可以用来考察候选人的技术深度和解决问题的能力:
1. 请解释一下什么是响应式设计,并给出一些实现响应式设计的最佳实践。

2. 请解释一下什么是虚拟DOM,为什么我们需要它?
3. 请解释一下JavaScript中的闭包是什么,以及如何使用它。

4. 请解释一下什么是事件冒泡,什么是事件捕获,并给出一些使用场景。

5. 请解释一下什么是HTTP/2,它与HTTP/有什么不同?
6. 请解释一下什么是前端性能优化,以及如何进行优化。

7. 请解释一下什么是Webpack,以及它是如何工作的。

8. 请解释一下什么是CSS模块化,以及如何实现它。

9. 请解释一下什么是CSS预处理器,如Sass或Less,以及它们的好处是什么。

10. 请解释一下什么是前端安全问题,以及如何避免这些问题。

这些问题都是高级前端面试中常见的面试题,涵盖了前端技术的多个方面,包括HTML、CSS、JavaScript、性能优化、工具和技术等。

候选人需要对这些问题有深入的理解,并且能够给出详细的答案。

WEB前端开发面试题集锦

WEB前端开发面试题集锦

W E B前端开发面试题集锦work Information Technology Company.2020YEARWEB前端面试题整理2011-11-16 11:201、列举你工作中遇到的IE6 BUG,谈谈解决方案。

3、如何用CSS分别单独定义IE6、7、8的width属性。

所有浏览器通用height: 100px;IE6 专用_height: 100px;IE6 专用*height: 100px;IE7 专用*+height: 100px;IE7、FF 共用height: 100px !important;4、CSS中哪些属性可以同父元素继承。

继承:(X)HTML元素可以从其父元素那里继承部分CSS属性,即使当前元素并没有定义该属性Color;font-size;5、你如何理解HTML结构的语意化。

1.去掉或样式丢失的时候能让页面呈现清晰的结构:html本身是没有表现的,我们看到例如<h1>是粗体,字体大小2em,加粗;<strong>是加粗的,不要认为这是htm 现,这些其实html默认的css样式在起作用,所以去掉或样式丢失的时候能让页面呈现清晰的结构不是语义化的H 构的优点,但是浏览器都有有默认样式,默认样式的目的也是为了更好的表达html的语义,可以说浏览器的默认样义化的HTML结构是不可分割的。

2.屏幕阅读器(如果访客有视障)会完全根据你的标记来“读”你的网页.例如,如果你使用的含语义的标记,屏幕阅读器就会“逐个拼出”你的单词,而不是试着去对它完整发音.3.PDA、手机等设备可能无法像普通电脑的浏览器一样来渲染网页(通常是因为这些设备对CSS的支持较弱).使用记可以确保这些设备以一种有意义的方式来渲染网页.理想情况下,观看设备的任务是符合设备本身的条件来渲染网语义标记为设备提供了所需的相关信息,就省去了你自己去考虑所有可能的显示情况(包括现有的或者将来新的设备如,一部手机可以选择使一段标记了标题的文字以粗体显示.而掌上电脑可能会以比较大的字体来显示.无论哪种方式对文本标记为标题,您就可以确信读取设备将根据其自身的条件来合适地显示页面.4.搜索引擎的爬虫也依赖于标记来确定上下文和各个关键字的权重.过去你可能还没有考虑搜索引擎的爬虫也是网站的“访客”,但现在它们他们实际上是极其宝贵的用户.没有他们的话,擎将无法索引你的网站,然后一般用户将很难过来访问.5.你的页面是否对爬虫容易理解非常重要,因为爬虫很大程度上会忽略用于表现的标记,而只注重语义标记.因此,如果页面文件的标题被标记,而不是,那么这个页面在搜索结果的位置可能会比较靠后.除了提升易用性外,语义标于正确使用CSS和JavaScript,因为其本身提供了许多“钩钩”来应用页面的样式与行为.SEO主要还是靠你网站的内容和外部链接的。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

web前端开发面试题汇总1天前653浏览2评论前端面试题汇总HTML&CSS1. 常用那几种浏览器测试?有哪些内核(Layout Engine)?(Q1) 浏览器:IE,Chrome,FireFox,Safari,Opera。

(Q2) 内核:Trident,Gecko,Presto,Webkit。

2. 说下行内元素和块级元素的区别?行内块元素的兼容性使用?(IE8 以下)行内元素:会在水平方向排列,不能包含块级元素,设置width无效,height无效(可以设置line-height),margin上下无效,padding上下无效。

块级元素:各占据一行,垂直方向排列。

从新行开始结束接着一个断行。

兼容性:display:inline-block;display:inline;zoom:1;3. 清除浮动有哪些方式?比较好的方式是哪一种?(1)父级div定义height。

(2)结尾处加空div标签clear:both。

(3)父级div定义伪类:after和zoom。

(4)父级div定义overflow:hidden。

(5)父级div定义overflow:auto。

(6)父级div也浮动,需要定义宽度。

(7)父级div定义display:table。

(8)结尾处加br标签clear:both。

总结:比较好的是第3种方式,简洁方便。

4. box-sizing常用的属性有哪些?分别有什么作用?常用的属性:box-sizing: content-box border-box inherit;作用:content-box:宽度和高度分别应用到元素的内容框。

在宽度和高度之外绘制元素的内边距和边框(元素默认效果)。

border-box:元素指定的任何内边距和边框都将在已设定的宽度和高度内进行绘制。

通过从已设定的宽度和高度分别减去边框和内边距才能得到内容的宽度和高度。

5. Doctype作用?标准模式与兼容模式各有什么区别?(Q1) 告知浏览器的解析器用什么文档标准解析这个文档。

DOCTYPE不存在或格式不正确会导致文档以兼容模式呈现。

(Q2) 标准模式的排版和JS运作模式都是以该浏览器支持的最高标准运行。

在兼容模式中,页面以宽松的向后兼容的方式显示,模拟老式浏览器的行为以防止站点无法工作。

6. HTML5 为什么只需要写< Doctype html>?HTML5不基于SGML,因此不需要对DTD进行引用;但是需要doctype来规范浏览器的行为(让浏览器按照它们应该的方式来运行)。

而HTML4.01基于SGML,所以需要对DTD进行引用,才能告知浏览器文档所使用的文档类型。

7. 页面导入样式时,使用link和@import有什么区别?(1)link属于XHTML标签,除了加载CSS外,还能用于定义RSS, 定义rel连接属性等作用;而@import是CSS提供的,只能用于加载CSS;(2)页面被加载的时,link会同时被加载,而@import引用的CSS会等到页面被加载完再加载;(3)import是CSS2.1 提出的,只在IE5以上才能被识别,而link是XHTML 标签,无兼容问题。

总之,link要优于@import。

8. 介绍一下你对浏览器内核的理解?IE浏览器的内核Trident、Mozilla的Gecko、Chrome的Blink(WebKit的分支)、Opera内核原为Presto,现为Blink;内核主要分成两部分:渲染引擎(layout engineer或Rendering Engine)和JS引擎渲染引擎:负责取得网页的内容(HTML、XML、图像等等)、整理讯息(例如加入CSS等),以及计算网页的显示方式,然后会输出至显示器或打印机。

浏览器的内核的不同对于网页的语法解释会有不同,所以渲染的效果也不相同。

所有网页浏览器、电子邮件客户端以及其它需要编辑、显示网络内容的应用程序都需要内核。

JS引擎则:解析和执行javascript来实现网页的动态效果。

最开始渲染引擎和JS引擎并没有区分的很明确,后来JS引擎越来越独立,内核就倾向于只指渲染引擎。

9. html5有哪些新特性?如何处理HTML5新标签的浏览器兼容问题?如何区分HTML 和HTML5?(Q1) HTML5 现在已经不是SGML 的子集,主要是关于图像,位置,存储,多任务等功能的增加。

(1)绘画canvas;(2)用于媒介回放的video 和audio 元素;(3)本地离线存储localStorage 长期存储数据,浏览器关闭后数据不丢失;(4)sessionStorage 的数据在浏览器关闭后自动删除;(5)语意化更好的内容元素,比如article、footer、header、nav、section; (6)表单控件,calendar、date、time、email、url、search;(7)新的技术webworker, websocket, Geolocation;(Q2) IE8/IE7/IE6支持通过document.createElement方法产生的标签,可以利用这一特性让这些浏览器支持HTML5新标签,浏览器支持新标签后,还需要添加标签默认的样式。

也可以直接使用成熟的框架、比如html5shim,10. 简述一下你对HTML语义化的理解?用正确的标签做正确的事情。

1.html语义化让页面的内容结构化,结构更清晰,便于对浏览器、搜索引擎解析;2.即使在没有样式CSS情况下也以一种文档格式显示,并且是容易阅读的;搜索引擎的爬虫也依赖于HTML标记来确定上下文和各个关键字的权重,利于SEO;3.使阅读源代码的人对网站更容易将网站分块,便于阅读维护理解。

11 ##常见兼容性问题?png24位的图片在iE6浏览器上出现背景,解决方案是做成PNG8.浏览器默认的margin和padding不同。

解决方案是加一个全局的{margin:0;padding:0;}来统一。

IE6双边距bug:块属性标签float后,又有横行的margin情况下,在ie6显示margin比设置的大。

浮动ie产生的双倍距离 #box{ float:left; width:10px; margin:0 0 0 100px;}这种情况之下IE会产生20px的距离,解决方案是在float的标签样式控制中加入——_display:inline;将其转化为行内属性。

(_这个符号只有ie6会识别) 渐进识别的方式,从总体中逐渐排除局部。

首先,巧妙的使用“\9”这一标记,将IE游览器从所有情况中分离出来。

接着,再次使用“+”将IE8和IE7、IE6分离开来,这样IE8已经独立识别。

css .bb{ background-color:#f1ee18;/所有识别/ .background-color:#00deff\9; /IE6、7、8识别/ +background-color:#a200ff;/IE6、7识别/ _background-color:#1e0bd1;/IE6识别/ }IE下,可以使用获取常规属性的方法来获取自定义属性,也可以使用getAttribute()获取自定义属性;Firefox下,只能使用getAttribute()获取自定义属性. 解决方法:统一通过getAttribute()获取自定义属性. IE下,even对象有x,y属性,但是没有pageX,pageY属性; Firefox下,event对象有pageX,pageY属性,但是没有x,y属性.解决方法:(条件注释)缺点是在IE浏览器下可能会增加额外的HTTP请求数。

Chrome 中文界面下默认会将小于 12px 的文本强制按照 12px 显示, 可通过加入 CSS 属性 -webkit-text-size-adjust: none; 解决.超链接访问过后hover样式就不出现了被点击访问过的超链接样式不在具有hover和active了解决方法是改变CSS属性的排列顺序:L-V-H-A : a:link {} a:visited {} a:hover {} a:active {}12.HTML5的离线储存,描述一下cookies,sessionStorage 和localStorage 的区别?cookie在浏览器和服务器间来回传递。

sessionStorage和localStorage不会sessionStorage和localStorage的存储空间更大;sessionStorage和localStorage有更多丰富易用的接口;sessionStorage和localStorage各自独立的存储空间;CSS一、介绍一下CSS的盒子模型?(1)有两种,IE 盒子模型、标准W3C 盒子模型;IE的content部分包含了border 和pading;(2)盒模型:内容(content)、填充(padding)、边界(margin)、边框(border).二、CSS 选择符有哪些?哪些属性可以继承?优先级算法如何计算?新增伪类有那些?1.id选择器(# myid)2.类选择器(.myclassname)3.标签选择器(div, h1, p)4.相邻选择器(h1 + p)5.子选择器(ul > li)6.后代选择器(li a)7.通配符选择器(* )8.属性选择器(a[rel = "external"])9.伪类选择器(a: hover, li: nth - child)可继承的样式:font-size font-family color, UL LI DL DD DT;不可继承的样式:border padding margin width height优先级就近原则,同权重情况下样式定义最近者为准;载入样式以最后载入的定位为准;优先级为: !important > id > class > tag ,important 比内联优先级高三、CSS3新增伪类举例p:first-of-type 选择属于其父元素的首个<p> 元素的每个<p> 元素。

p:last-of-type 选择属于其父元素的最后<p> 元素的每个<p> 元素。

p:only-of-type 选择属于其父元素唯一的<p> 元素的每个<p> 元素。

p:only-child 选择属于其父元素的唯一子元素的每个<p> 元素。

p:nth-child(2) 选择属于其父元素的第二个子元素的每个<p> 元素。

:enabled :disabled 控制表单控件的禁用状态。

相关文档
最新文档