文档视界 最新最全的文档下载
当前位置:文档视界 › 最新web前端面试题(及答案)

最新web前端面试题(及答案)

最新web前端面试题(及答案)

1、常用那几种浏览器测试?有哪些内核(Layout Engine)?

答:

(Q1) 浏览器:IE,Chrome,FireFox,Safari,Opera。

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

2、说下行内元素和块级元素的区别?行内块元素的兼容性使用?(IE8 以下)答:

(Q1) 行内元素:会在水平方向排列,不能包含块级元素,设置width无效,height无效(可以设置line-height),margin上下无效,padding上下无效。

块级元素:各占据一行,垂直方向排列。从新行开始结束接着一个断行。

(Q2) 兼容性:display:inline-block;*display:inline;*zoom:1;

3、清除浮动有哪些方式?比较好的方式是哪一种?

答:

(Q1)

(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。

(Q2) 比较好的是第3种方式,好多网站都这么用。

4、box-sizing常用的属性有哪些?分别有什么作用?

答:

(Q1)box-sizing: content-box|border-box|inherit;

(Q2)content-box:宽度和高度分别应用到元素的内容框。在宽度

和高度

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

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

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

宽度和高度。

5、Doctype作用?标准模式与兼容模式各有什么区别?

答:

(Q1) 告知浏览器的解析器用什么文档标准解析这个文档。DOCTYPE不

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

(Q2) 标准模式的排版和JS运作模式都是以该浏览器支持的最高标准运行。在兼容模式中,页面以宽松的向后兼容的方式显示,模拟老式浏览器的行为以防

止站点无法工作。

6、HTML5 为什么只需要写?

答:

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标签,无兼容问题。

8、介绍一下你对浏览器内核的理解?

答:

主要分成两部分:渲染引擎(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语义化的理解?

答:

用正确的标签做正确的事情。

html语义化让页面的内容结构化,结构更清晰,便于对浏览器、搜索引擎解析;

即使在没有样式CSS情况下也以一种文档格式显示,并且是容易阅读的;

搜索引擎的爬虫也依赖于HTML标记来确定上下文和各个关键字的权重,利于SEO;

使阅读源代码的人对网站更容易将网站分块,便于阅读维护理解。

JavaScript部分

1、介绍js的基本数据类型

答: Undefined、Null、Boolean、Number、String

2、js有哪些内置对象?

答:数据封装类对象:Object、Array、Boolean、Number 和String

其他对象:Function、Arguments、Math、Date、RegExp、Error

3、this对象的理解

答:this总是指向函数的直接调用者(而非间接调用者);

如果有new关键字,this指向new出来的那个对象;

在事件中,this指向触发这个事件的对象,特殊的是,IE中的attachEvent 中的this总是指向全局对象Window。

4、eval是做什么的?

答:它的功能是把对应的字符串解析成JS代码并运行;

应该避免使用eval,不安全,非常耗性能(2次,一次解析成js 语句,一次执行)。

由JSON字符串转换为JSON对象的时候可以用eval,var obj =eval('('+ str +')')。

5、DOM怎样添加、移除、移动、复制、创建和查找节点

答:

// 创建新节点

createDocumentFragment() //创建一个DOM片段

createElement() //创建一个具体的元素

createTextNode() //创建一个文本节点

// 添加、移除、替换、插入

appendChild()

removeChild()

replaceChild()

insertBefore() //在已有的子节点前插入一个新的子节点

// 查找

getElementsByTagName() //通过标签名称

getElementsByName() //通过元素的Name属性的值(IE容错能力较强,会得到一个数组,其中包括id等于name值的)

getElementById() //通过元素Id,唯一性

6、null和undefined的区别?

答:

null是一个表示"无"的对象,转为数值时为0;undefined是一个表示"无"

的原始值,转为数值时为NaN。

undefined:

(1)变量被声明了,但没有赋值时,就等于undefined。

(2) 调用函数时,应该提供的参数没有提供,该参数等于undefined。

(3)对象没有赋值的属性,该属性的值为undefined。

(4)函数没有返回值时,默认返回undefined。

null:

(1)作为函数的参数,表示该函数的参数不是对象。

(2)作为对象原型链的终点。

7、new操作符具体干了什么呢?

答:

(1)创建一个空对象,并且this 变量引用该对象,同时还继承了该函数

的原型。

(2)属性和方法被加入到this 引用的对象中。

(3)新创建的对象由this 所引用,并且最后隐式的返回this 。

8、JSON 的了解?

答:

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它

是基于JavaScript的一个子集。数据格式简单, 易于读写, 占用带宽小。

格式:采用键值对,例如:{'age':'12', 'name':'back'}

9、call() 和apply() 的区别和作用?

答:

apply()函数有两个参数:第一个参数是上下文,第二个参数是参数组成的数组。如果上下文是null,则使用全局对象代替。

如:function.apply(this,[1,2,3]);

call()的第一个参数是上下文,后续是实例传入的参数序列。

如:function.call(this,1,2,3);

10、如何获取UA?

答:

function whatBrowser() {

https://www.docsj.com/doc/8219148558.html,/doc/0c9510483.html,.value=navigator.app Name;

document.Browser.Version.value=navigator.appVersion;

document.Browser.Code.value=navigator.appCodeName;

document.Browser.Agent.value=https://www.docsj.com/doc/8219148558.html,/doc/0c95 10483.html,erAgent;

}

其他

1、HTTP状态码知道哪些?

答:

100 Continue 继续,一般在发送post请求时,已发送了http header之后服务端将返回此信息,表示确认,之后发送具体参数信息200 OK 正常返回信息

201 Created 请求成功并且服务器创建了新的资源

202 Accepted 服务器已接受请求,但尚未处理

301 Moved Permanently 请求的网页已永久移动到新位置。

302 Found 临时性重定向。

303 See Other 临时性重定向,且总是使用GET 请求新的URI。

304 Not Modified 自从上次请求后,请求的网页未修改过。

400 Bad Request 服务器无法理解请求的格式,客户端不应当尝试再次使用相同的内容发起请求。

401 Unauthorized 请求未授权。

403 Forbidden 禁止访问。

404 Not Found 找不到如何与URI 相匹配的资源。

500 Internal Server Error 最常见的服务器端错误。

503 Service Unavailable 服务器端暂时无法处理请求(可能是过

载或维护)。

2、你有哪些性能优化的方法?

答:

(1)减少http请求次数:CSS Sprites, JS、CSS源码压缩、图片大小控制合适;网页Gzip,CDN托管,data缓存,图片服务器。

(2)前端模板JS+数据,减少由于HTML标签导致的带宽浪费,前端用变量保存AJAX请求结果,每次操作本地变量,不用请求,减少请求次数

(3)用innerHTML代替DOM操作,减少DOM操作次数,优化javascript 性能。

(4)当需要设置的样式很多时设置className而不是直接操作style。

(5)少用全局变量、缓存DOM节点查找的结果。减少IO读取操作。

(6)避免使用CSS Expression(css表达式)又称Dynamic properties(动态属性)。

(7)图片预加载,将样式表放在顶部,将脚本放在底部加上时间戳。

3、什么叫优雅降级和渐进增强?

答:

优雅降级:Web站点在所有新式浏览器中都能正常工作,如果用户使用的是老式浏览器,则代码会检查以确认它们是否能正常工作。由于IE独特的盒模型布局问题,针对不同版本的IE的hack实践过优雅降级了,为那些无法支持功能的浏览器增加候选方案,使之在旧式浏览器上以某种形式降级体验却不至于完全失效。

渐进增强:从被所有浏览器支持的基本功能开始,逐步地添加那些只有新式浏览器才支持的功能,向页面增加无害于基础浏览器的额外样式和功能的。当浏览器支持时,它们会自动地呈现出来并发挥作用。

4、哪些常见操作会造成内存泄漏?

答:

内存泄漏指任何对象在您不再拥有或需要它之后仍然存在。

垃圾回收器定期扫描对象,并计算引用了每个对象的其他对象的数量。如果一个对象的引用数量为0(没有其他对象引用过该对象),或对该对象的惟一引用是循环的,那么该对象的内存即可回收。

setTimeout 的第一个参数使用字符串而非函数的话,会引发内存泄漏。

闭包、控制台日志、循环(在两个对象彼此引用且彼此保留时,就会产生一个循环)。

5、线程与进程的区别

答:

一个程序至少有一个进程,一个进程至少有一个线程。

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

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

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

从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别。

前端工程师面试题及答案

前端工程师面试题及答案 前言: 前端工程师是近年来热门的职业之一,对于公司而言,拥有一名优秀的前端工程师可以提升产品的用户体验和界面设计的质量。面试是评估候选人技能和能力的重要环节。下面是一些常见的前端工程师面试题及答案,希望对您有所帮助。 一、HTML/CSS相关问题 1. 什么是HTML?什么是CSS? HTML全称Hyper Text Markup Language,是用于创建网页的标准标记语言。 CSS全称Cascading Style Sheets,用于描述网页元素样式的语言。 2. HTML5有什么新特性? HTML5引入了许多新的元素和API,如语义化标签、本地存储、多媒体元素、Canvas绘图等。 3. 解释下Box模型。 Box模型是指网页中的每个元素都可以看作是一个盒子,包括内容区域、填充区域、边框和外边距。 4. 请简述flex布局。

Flex布局(Flexible Box Layout)是CSS3新增的一种布局模式,可 以轻松实现灵活的盒子布局。 5. 解释下CSS选择器及其优先级。 CSS选择器用于选择要样式化的HTML元素。优先级是指当多个选择器同时作用于同一个元素时,浏览器根据一定规则来确定使用哪个 样式。 二、JavaScript相关问题 1. JavaScript是一种编程语言还是脚本语言? JavaScript是一种弱类型、解释性的脚本语言。 2. 解释下变量的作用域。 变量的作用域指的是变量的可访问范围,分为全局作用域和局部作 用域。 3. 请解释下什么是闭包。 闭包是指在一个函数内部定义的函数,并且可以访问父函数的变量。闭包可以保护变量不受外部的干扰。 4. 解释一下事件冒泡和事件捕获。 事件冒泡是指事件触发后,先执行最内层元素的事件处理程序,然 后逐级向外执行,直至触发最外层元素的事件处理程序。

【最新考试题库及答案】web前端面试题及答案

web前端面试题及答案 为的web前端面试题及答案,供各位参考。 1、怎样添加、移除、移动、复制、创建和查找节点? 创建新节点: creatDocumentFragment(),创建一个DOM片段。creatElement(),创建一个具体的元素。 creatTextNode(),创建一个文本节点。 添加、移除、替换、插入: appendChild(),添加。 removeChild(),移除。 replaceChild(),替换。 Before(),插入。 查找: getElementsByTagName(),通过标签名称。getElementsByName(),通过元素的Name属性的值。getElementById(),通过元素id,唯一性。 2、JS中什么是伪数组?如何将伪数组转化为标准数组? 伪数组(类数组):无法直接调用数组方法或期望length属性有什么特殊的行为。但仍可以对真正数组遍历方法来遍历它们。典型的是函数的arguement参数,还有像调用getElementsByTagName()、document.childNodes()之类的,它们都返回NodeList对象,都属于伪数组。可以用

Array.prototype.slice.call(fakeArray)将数组转化为真正的Array对象。3、JS中callee和caller的作用。 caller是返回一个对函数的引用,该函数调用了当前函数;callee是返回正在被执行的函数,也就是所指定的function对象的正文。 4、请说出三种减低页面加载时间的方法。 1.压缩CSS、JS文件。 2.合并JS、CSS文件,减少HTTP请求。 3.外部JS、CSS文件放最底下。 4.减少DOM的操作,尽可能用变量替代不必要的DOM操作。 5、为什么用多个域名来存储网络资源会更有效? 确保用户在不同地区用最快的速度打开网站,其中某个域名崩溃,用户也能通过其他域名访问网站。 6、如何消除一个数组里面重复的元素?indexOf():返回某个指定的字符串值在字符串中首次出现的位置,对大小写敏感,若没有,则返回-1。 7、写一个function,清除字符串前后的空格(兼容所有的浏览器)。8、统计字符串中字母个数或统计最多字母数。str.charAt(i):返回指定位置的字符,i在0~str.length之间,如果i不在0~str.length之间,该方法返回一个空字符串。9、截取字符串 abcdefg 中的 egf 。10、实现一个函数clone,可以对JS中的5种主要的数据类型(包括Number、String、

web前端面试题及答案

web前端面试题及答案 前端开发面试题及答案 1、对Web标准以及W3C的理解与认识 2、某HTML和HTML有什么区别 答:HTML是一种基本的WEB网页设计语言,某HTML是一个基于某ML 的置标语言最主要的不同: 某HTML元素必须被正确地嵌套; 某HTML元素必须被关闭; 某HTML文档必须拥有根元素。 3、Doctype严格模式与混杂模式-如何触发这两种模式,区分它们有何意义答:Doctype用于声明文档使用哪种规范(HTML/某HTML)加入某ML声明可触发,解析方式更改为IE5.5拥有IE5.5的bug。 4、行内元素有哪些块级元素有哪些CSS的盒模型 答:行内元素:abbripaninputelect 块级元素:divph1h2h3h4formul CSS盒模型:内容,bordermarginpadding 答:方式:内联内嵌外链导入 区别:同时加载 前者无兼容性,后者CSS2.1以下浏览器不支持

Link支持使用javacript改变样式,后者不可。 6.CSS选择符有哪些哪些属性可以继承优先级算法如何计算内联和important哪个优先级高 后者优先级高 7、前端页面有哪三层构成,分别是什么作用是什么 答:结构层HTML表示层CSS行为层JS 8、你做的页面在哪些浏览器测试过这些浏览器的内核分别是什么答:Ie(Ie内核) 火狐(Gecko) 谷歌(webkit) opear(Preto) 答:Alt当图片不显示时,用文字代表 Title为该属性提供信息。 10、描述CSSReet的作用和用途 答:Reet重置浏览器的CSS默认属性浏览器的品种不同,样式不同,然后重 置,让他们统一。 100-199用于指定客户端应响应的某些动作。 200-299用于表示请求成功。

前端面试题及答案

前端面试题及答案 在前端领域中,面试是获取工作机会的重要环节。为了帮助准备前端面试的候选人们,本文将提供一些常见的前端面试题及其答案,以供参考。 一、HTML相关面试题 1. 请简述HTML的概念和作用。 HTML是超文本标记语言的缩写,用于构建网页的标准标记语言。它通过标签来定义页面的结构和内容,并与CSS和JavaScript等其他技术协同工作,实现页面的渲染和交互。 2. 请解释一下HTML5的新特性。 HTML5引入了许多新特性,例如语义化标签(如header、footer、nav等)、视频和音频元素、Canvas绘图功能、本地存储(localStorage 和sessionStorage)、WebSocket等。这些特性提升了网页的功能和性能,使开发者能够更好地构建富交互、多媒体的网页应用。 3. 请描述一下HTML元素的块级元素和内联元素的区别。 块级元素会独占一行,相邻的两个块级元素会自动换行。常见的块级元素有div、p、h1等。而内联元素不会换行,会在一行内按照从左到右的顺序排列。常见的内联元素有span、a、em等。此外,块级元素可以包含内联元素,但是内联元素不能包含块级元素。 二、CSS相关面试题

1. 请解释一下盒模型。 盒模型描述了一个HTML元素所占空间的模型。它由内容区、内边距、边框和外边距组成。其中,内容区的大小由width和height属性决定,内边距由padding属性决定,边框由border属性决定,外边距由margin属性决定。 2. 如何实现水平居中一个块级元素? 要实现水平居中一个块级元素,可以设置其左右外边距为auto,同时将其display属性设置为block。例如,假设元素的宽度为300px,可以使用如下CSS代码: ```css .element { width: 300px; margin-left: auto; margin-right: auto; display: block; } ``` 3. 请解释一下CSS选择器的优先级。 CSS选择器的优先级用于确定当多个选择器作用于同一个元素时,哪一个选择器的样式将被应用。选择器的优先级由四个部分组成,按

前端开发常见面试题

前端开发常见面试题 前言: 随着互联网的快速发展,前端开发技术也逐渐成为了热门职业。作 为一名前端开发工程师,不仅需要具备扎实的技术基础,还需要面对 各种面试题目展示自己的能力。本文将介绍一些前端开发常见面试题,帮助读者更好地准备面试。 一、HTML相关面试题 1. 介绍一下HTML的语义化和非语义化的区别。 HTML的语义化是指使用合适的HTML标签来描述文档结构和内容。而非语义化则相反,使用不合适或者没有语义的标签来编写HTML代码。语义化的好处包括:有助于浏览器、搜索引擎等程序理解页面结构,提高可访问性和SEO优化效果,方便代码维护等。 2. 解释一下HTML5的新特性。 HTML5是HTML的第五个版本,引入了很多新的特性和API。其 中一些主要的特性包括:新增的语义化标签(header、footer、nav等),音视频支持(video和audio标签),Canvas绘图功能,本地存储(localStorage和sessionStorage),Web Worker多线程等。 二、CSS相关面试题 1. 什么是盒模型?分别说说标准盒模型和IE盒模型的区别。

盒模型是CSS中常用的布局概念,将元素看作是一个矩形盒子。标准盒模型和IE盒模型的区别在于计算盒子的宽度和高度时所包含的内容不同。标准盒模型的宽度和高度仅包括内容的宽度和高度,而IE盒模型的宽度和高度还包括内边距和边框的宽度。 2. CSS选择器有哪些?请举例说明其用法。 常见的CSS选择器有:标签选择器(例如div、p),类选择器(例如.class),ID选择器(例如#id),属性选择器(例如[type='text']),伪类选择器(例如:first-child)。通过选择器可以选中对应的HTML元素,并对其应用相应的样式。 三、JavaScript相关面试题 1. 介绍一下闭包的概念及其用途。 闭包是指函数内部的函数可以访问外部函数的变量,即使外部函数已经执行完毕。闭包的用途包括:实现数据私有化,保存函数执行上下文,创建模块化代码等。 2. 什么是事件冒泡和事件捕获?如何阻止事件冒泡? 事件冒泡和事件捕获是事件传播的两种方式。事件冒泡是指事件由最具体的元素接收,然后逐级向上传播到父元素。事件捕获则相反,事件由父元素先接收,然后逐级向下传播到最具体的元素。可以通过调用事件对象的`stopPropagation()`方法来阻止事件冒泡。 四、框架和工具相关面试题

最新web前端面试题及答案

1. WEB标准以及W3C标准是什么? 标签闭合、标签小写、不乱嵌套、使用外链css和js、结构行为表现的分离。 1.1div中img怎么水平和垂直居中? Div{width:200px; height:200px;text-align:center; font-size:0; overflow: hidden;line-height:200px; _line-height:178px;/*兼容IE6*/ } Img{ vertical-align:middle;} 1.2 HTML中没有单位的属性是? z-index:1; zoom:1; font-weight:200; 1.3 form表单中input标签的readonly 和disabled属性有何区别? readonly=“readonly”是只读,不可以修改,disabled=“disabled”是禁用,整个文本框是显示灰色状态 form 中method是数据传递的方式,action是与后台数据库提交的 5.xhtml和html有什么区别 XHTML 元素必须被正确地嵌套,闭合,区分大小写,文档必须拥有根元素。 3.行内元素有哪些?块级元素有哪些? 行内元素: a b img em br i span input select 块级元素:div p h1-h6 form ul dl ol table 4.行内元素和块级元素有什么区别? 行内元素不可以设置宽高,不独占一行; 块级元素可以设置宽高,独占一行。 5.我想让行内元素跟上面的元素距离10px,加margin-top和padding-top可以吗?margin-top,padding-top无效 6.CSS的盒模型由什么组成? 内容(width,height),border ,margin,padding 6.1 简述div+css布局的优势? (1)符合w3c标准;(2)兼容性好;(3)有利于搜索引擎很友好;(4)样式的调整更加方便;(5)css简洁的代码,能使样式和结构分离; 7.说说display属性有哪些?可以做什么? display:block行内元素转换为块级元素 display:inline块级元素转换为行内元素 display:inline-block转为内联元素 display:box(css3新增的弹性布局属性) 8.CSS 选择符有哪些? 1.id选择器(# myid) 2.类选择器(.myclassname) 3.标签选择器(div, h1, p) 4.相邻选择器(h1 + p) 5.子选择器(ul < li) 6.后代选择器(li a)

最新web前端面试题(及答案)

最新web前端面试题(及答案) 1、常用那几种浏览器测试?有哪些内核(Layout Engine)? 答: (Q1) 浏览器:IE,Chrome,FireFox,Safari,Opera。 (Q2) 内核:Trident,Gecko,Presto,Webkit。 2、说下行内元素和块级元素的区别?行内块元素的兼容性使用?(IE8 以下)答: (Q1) 行内元素:会在水平方向排列,不能包含块级元素,设置width无效,height无效(可以设置line-height),margin上下无效,padding上下无效。 块级元素:各占据一行,垂直方向排列。从新行开始结束接着一个断行。 (Q2) 兼容性:display:inline-block;*display:inline;*zoom:1; 3、清除浮动有哪些方式?比较好的方式是哪一种? 答: (Q1) (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。 (Q2) 比较好的是第3种方式,好多网站都这么用。 4、box-sizing常用的属性有哪些?分别有什么作用? 答: (Q1)box-sizing: content-box|border-box|inherit; (Q2)content-box:宽度和高度分别应用到元素的内容框。在宽度

前端面试题及答案2020

web前端面试试题(含答案) 一、先自我介绍一下,说一下项目的技术栈,以及项目中遇到的一些问题 二、从整体中,看你对项目的认识,框架的认识和自己思考。 三、项目中有没有遇到什么难点,怎么解决。 四、如果你在创业公司你怎么从0开始做(选择什么框架,选择什么构建工具)。 五、说一下你项目中用到的技术栈,以及觉得得意和出色的点,以及让你头疼的点,怎么解决的。 六、一个业务场景,面对产品不断迭代,以及需求的变动该怎么应对,具体技术方案实现。 七、你的学习来源是什么。 八、你觉得哪个框架比较好,好在哪里。 九、你觉得最难得技术难点是什么。 十、你见过的最好的代码是什么 十一、网站性能优化 1. http 请求方面,减少请求数量,请求体积,对应的做法是,对项目资源进行压缩,控制项目资源的dns 解析在2到4个域名,提取公告的样式,公共的组件,雪碧图,缓存资源, 2. 压缩资源,提取公共资源压缩,提取css ,js 公共方法 3. 不要缩放图片,使用雪碧图,使用字体图表(阿里矢量图库) 4. 使用CDN,抛开无用的cookie 5. 减少重绘重排,CSS属性读写分离,最好不要用js 修改样式,dom 离线更

新,渲染前指定图片的大小 6. js 代码层面的优化,减少对字符串的计算,合理使用闭包,首屏的js 资源加载放在最底部 十二、js 自定义事件实现 1. 原生提供了3个方法实现自定义事件 2. createEvent,设置事件类型,是html 事件还是鼠标事件 3. initEvent 初始化事件,事件名称,是否允许冒泡,是否阻止自定义事件 4. dispatchEvent 触发事件 十三、angular 双向数据绑定与vue数据的双向数据绑定 1. 二者都是MVVM 模式开发的典型代表 2. angular 是通过脏检测实现,angular 会将UI 事件,请求事件,settimeout 这类延迟,的对象放入到事件监测的脏队列,当数据变化的时候,触发$diget 方法进行数据的更新,视图的渲染 3. vue 通过数据属性的数据劫持和发布订阅的模式实现,大致可以理解成由3个模块组成,observer 完成对数据的劫持,compile 完成对模板片段的渲染,watcher 作为桥梁连接二者,订阅数据变化及更新视图 十四、get与post 通讯的区别 1. Get 请求能缓存,Post 不能 2. Post 相对Get 安全一点点,因为Get 请求都包含在URL 里,且会被浏览器保存历史纪录,Post 不会,但是在抓包的情况下都是一样的. 3. Post 可以通过request body来传输比Get 更多的数据,Get 没有这个技术

前端开发面试题及答案

前端开发面试题及答案 1. 什么是前端开发? 答:前端开发是一门技术,其主要目的是使用 HTML,CSS 和 JavaScript 来创建动态网页,视图和用户界面。 2. 如何使用CSS制作一个圆角边框? 答:使用 CSS 的 border-radius 属性可以制作圆角边框,如:border-radius: 10px; 3. 请描述流式布局的概念。 答:流式布局是一种网页布局技术,它可以根据浏览器窗口大小自动调整页面中元素的位置和大小。 4. 请描述XML及其用途。 答:XML(可扩展标记语言)是一种标记语言,可以用来存储和传输数据,也用于创建 web 应用。 5. 什么是AJAX? 答:AJAX 是 Asynchronous JavaScript and XML 的缩写,它是一种用于创建异步 Web 应用的技术,可以在不重新加载整个页面的情况下更新网页的部分内容。 6. 什么是JSON? 答:JSON 是 JavaScript 对象表示法的缩写,是一种轻量级的数据交换格式,用于在应用程序之间进行数据交换和存储。 7. 什么是CDN?

答:CDN 是内容分发网络的缩写,是一种分散式网络技术,用于将静态资源(如 JavaScript 和 CSS 文件)分发到多个服务器上,以提供更快的网页加载速度。 8. 请描述Web存储的概念。 答:Web 存储提供了一种方式,可以在网站上存储数据,并在下次用户访问中访问这些数据。使用 web 存储,可以为用户提供更好的体验和功能,因为它可以更快地加载页面和保存状态信息。 9. 请描述HTML5的新特性。 答:HTML5 包含许多新特性,包括新的元素(如