2016年终前端HTML5开发面试题汇总整理

来源:互联网 发布:淘宝如何发图片给卖家 编辑:程序博客网 时间:2024/05/29 12:50

2016年终前端HTML5开发面试题汇总整理,仅部分问题有答案,其他请自行解决处理。

一、HTML常见题目

01、Doctype作用?严格模式与混杂模式如何区分?它们有何意义?

02、HTML5 为什么只需要写 <!DOCTYPE HTML>?

答:Html5不基于SGML,因此不需要对DTD进行引用,但是需要DOCTYPE来规范浏览器的行为(让浏览器按照他们应该的方式来运行)而HTML4.01基于SGML,所以需要对DTD进行引用,才能告知浏览器文档所使用的文档类型。

03、行内元素有哪些?块级元素有哪些? 空(void)元素有那些?

答:行内元素:a  b  span  img  input  select  strong

块级元素:div  ul  ol  li  dl  dt  dd  h1  h2  h3  h4  p  等

空元素:<br>  <hr>  <img>  <link> <meta>

04、页面导入样式时,使用link和@import有什么区别?

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

06、常见的浏览器内核有哪些?

07、Html5有哪些新特性、移除了那些元素?如何处理HTML5新标签的浏览器兼容问题?

答:新特性,新增元素:

1)内容元素:article、footer、header、nav、section

2)表单控件:calendar、date、time、email、url、search

3)控件元素:webworker,websockt,Geolocation

移除元素:

1)显现层元素:basefont,big,center,font,s,strike,tt,u

2)性能较差元素:frame,frameset,noframes

处理兼容问题有两种方式:

1)IE6/IE7/IE8支持通过document方法产生的标签,利用这一特性让这些浏览器支持HTML5新标签。

2)使用是html5shim框架

另外,DOCTYPE声明的方式是区分HTML和HTML5标志的一个重要因素,此外,还可以根据新增的结构,功能元素来加以区分。

08、如何区分 HTML 和 HTML5?

答:1)在文档类型声明上不同:

HTML是很长的一段代码,很难记住,而HTML5却只有简简单单的声明,方便记忆。

2)在结构语义上不同:

HTML:没有体现结构语义化的标签,通常都是这样来命名的<div id="header"></div>,这样表示网站的头部。

HTML5:在语义上却有很大的优势。提供了一些新的标签,比如:<header><article><footer>

09、简述一下你对HTML语义化的理解?

答:1)用正确的标签做正确的事情;

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

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

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

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

10、HTML5的离线储存怎么使用,工作原理能不能解释一下?

答:localStorage 长期存储数据,浏览器关闭后数据不丢失;

sessionStorage 数据在浏览器关闭后自动删除。

11、浏览器是怎么对HTML5的离线储存资源进行管理和加载的呢?

12、请描述一下 cookies,sessionStorage 和 localStorage 的区别?

13、iframe有那些缺点?

答:1)在网页中使用框架结构最大的弊病是搜索引擎的“蜘蛛”程序无法解读这种页面;

2)框架结构有时会让人感到迷惑,页面很混乱;

14、Label的作用是什么?是怎么用的?(加 for 或 包裹)

15、HTML5的form如何关闭自动完成功能?

16、如何实现浏览器内多个标签页之间的通信? (阿里)

17、webSocket如何兼容低浏览器?(阿里)

18、页面可见性(Page Visibility)API 可以有哪些用途?

19、如何在页面上实现一个圆形的可点击区域?

20、实现不使用 border 画出1px高的线,在不同浏览器的Quirksmode和CSSCompat模式下都能保持同一效果。

21、网页验证码是干嘛的,是为了解决什么安全问题?

22、tite与h1的区别、b与strong的区别、i与em的区别?

 

二、CSS面试题

 

01、介绍一下标准的CSS的盒子模型?与低版本IE的盒子模型有什么不同的?

02、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

03、CSS优先级算法如何计算?

04、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 控制表单控件的禁用状态;

 

:checked        单选框或复选框被选中。

05、如何居中div?如何居中一个浮动元素?如何让绝对定位的div居中?

06、display有哪些值?说明他们的作用。

07、position的值relative和absolute定位原点是?

08、CSS3有哪些新特性?

答:CSS3 实现圆角(border-radius:8px;),阴影(box-shadow:10px),对文字加特效(text-shadow),线性渐变(gradient),旋转(transform)

 

transform:rotate(9deg) scale(0.85,0.90) translate(0px,-30px) skew(-9deg,0deg);//旋转,缩放,定位,倾斜增加了更多的 css 选择器 多背景 rgba

09、请解释一下CSS3的Flexbox(弹性盒布局模型),以及适用场景?

10、用纯CSS创建一个三角形的原理是什么?

11、一个满屏 品 字布局 如何设计?

12、常见兼容性问题?

13、li与li之间有看不见的空白间隔是什么原因引起的?有什么解决办法?

14、经常遇到的浏览器的兼容性有哪些?原因,解决方法是什么,常用hack的技巧?

15、为什么要初始化CSS样式。

答:因为浏览器的兼容问题,不同浏览器对有些标签的默认值是不同的,如果没对 CSS 初始化往往会出现浏览器之间的页面显示差异。

 

当然,初始化样式会对 SEO 有一定的影响,但鱼和熊掌不可兼得,但力求影响最小的情况下初始化。

 

最简单的初始化方法是:*{padding:0;margin:0} (不建议)

 

淘宝的样式初始化:

 

body, h1, h2, h3, h4, h5, h6, hr, p, blockquote, dl, dt, dd, ul, ol, li, pre, form, fieldset, legend, button, input,

 

        textarea, th, td { margin:0; padding:0; }

 

        body, button, input, select, textarea { font:12px/1.5tahoma, arial, \5b8b\4f53; }

 

        h1, h2, h3, h4, h5, h6{ font-size:100%; }

 

        address, cite, dfn, em, var { font-style:normal; }

 

        code, kbd, pre, samp { font-family:couriernew, courier, monospace; }

 

        small{ font-size:12px; }

 

        ul, ol { list-style:none; }

 

        a { text-decoration:none; }

 

        a:hover { text-decoration:underline; }

 

        sup { vertical-align:text-top; }

 

        sub{ vertical-align:text-bottom; }

 

        legend { color:#000; }

 

        fieldset, img { border:0; }

 

        button, input, select, textarea { font-size:100%; } table { border-collapse:collapse; border-spacing:0; }

16、absolute的containingblock计算方式跟正常流有什么不同?

17、CSS里的visibility属性有个collapse属性值是干嘛用的?在不同浏览器下以后什么区别?

18、position跟display、margin collapse、overflow、float这些特性相互叠加后会怎么样?

19、对BFC规范(块级格式化上下文:block formatting context)的理解?

20、CSS权重优先级是如何计算的?

21、请解释一下为什么会出现浮动和什么时候需要清除浮动?清除浮动的方式

22、移动端的布局用过媒体查询吗?

23、使用 CSS 预处理器吗?喜欢那个?

24、CSS优化、提高性能的方法有哪些?

25、浏览器是怎样解析CSS选择器的?

26、在网页中的应该使用奇数还是偶数的字体?为什么呢?

27、margin和padding分别适合什么场景使用?

28、抽离样式模块怎么写,说出思路,有无实践经验?[阿里航旅的面试题]

29、元素竖向的百分比设定是相对于容器的高度吗?

30、全屏滚动的原理是什么?用到了CSS的那些属性?

31、什么是响应式设计?响应式设计的基本原理是什么?如何兼容低版本的IE?

32、视差滚动效果,如何给每页做不同的动画?(回到顶部,向下滑动要再次出现,和只出现一次分别怎么做?)

33、::before 和:after中双冒号和单冒号 有什么区别?解释一下这2个伪元素的作用。

34、如何修改chrome记住密码后自动填充表单的黄色背景 ?

35、你对line-height是如何理解的?

36、设置元素浮动后,该元素的display值是多少?(自动变成display:block)

37、怎么让Chrome支持小于12px 的文字?

38、让页面里的字体变清晰,变细用CSS怎么做?(-webkit-font-smoothing: antialiased;)

39、font-style属性可以让它赋值为“oblique” oblique是什么意思?

40、position:fixed;在Android下无效怎么处理?

41、如果需要手动写动画,你认为最小时间间隔是多久,为什么?(阿里)

42、display:inline-block 什么时候会显示间隙?(携程)

43、overflow: scroll时不能平滑滚动的问题怎么处理?

44、有一个高度自适应的div,里面有两个div,一个高度100px,希望另一个填满剩下的高度。

45、png、jpg、gif 这些图片格式解释一下,分别什么时候用。有没有了解过webp?

46、什么是Cookie 隔离?(或者说:请求资源的时候不要让它带cookie怎么做)

47、style标签写在body后与body前有什么区别?

三、JavaScript面试题

 

01、介绍JavaScript的基本数据类型。

02、说说写JavaScript的基本规范?

03、JavaScript原型,原型链 ? 有什么特点?

04、JavaScript有几种类型的值?(堆:原始数据类型和栈:引用数据类型),你能画一下他们的内存图吗?

05、Javascript如何实现继承?

06、Javascript创建对象的几种方式?

07、Javascript作用链域?

08、谈谈This对象的理解。

09、eval是做什么的?

10、什么是window对象? 什么是document对象?

11、null,undefined的区别?

12、写一个通用的事件侦听器函数(机试题)。

13、[“1”, “2”, “3”].map(parseInt) 答案是多少?

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

15、什么是闭包(closure),为什么要用它?

16、javascript 代码中的”use strict”;是什么意思 ? 使用它区别是什么?

17、如何判断一个对象是否属于某个类?

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

19、用原生JavaScript的实现过什么功能吗?

20、Javascript中,有一个函数,执行时对象查找时,永远不会去查找原型,这个函数是?

21、对JSON的了解?

22、[].forEach.call($$("*"),function(a){a.style.outline="1px solid#"+(~~(Math.random()*(1<<24))).toString(16) }) 能解释一下这段代码的意思吗?

23、js延迟加载的方式有哪些?

24、Ajax 是什么? 如何创建一个Ajax?

25、同步和异步的区别?

26、如何解决跨域问题?

27、页面编码和被请求的资源编码如果不一致如何处理?

28、模块化开发怎么做?

29、AMD(Modules/Asynchronous-Definition)、CMD(Common Module Definition)规范区别?

30、requireJS的核心原理是什么?(如何动态加载的?如何避免多次加载的?如何缓存的?)

31、让你自己设计实现一个requireJS,你会怎么做?

32、谈一谈你对ECMAScript6的了解?

33、ECMAScript6 怎么写class么,为什么会出现class这种东西?

34、异步加载的方式有哪些?

35、documen.write和 innerHTML的区别?

36、DOM操作——怎样添加、移除、移动、复制、创建和查找节点?

37、.call() 和.apply() 的含义和区别?

38、数组和对象有哪些原生方法,列举一下?

39、JS 怎么实现一个类。怎么实例化这个类

40、JavaScript中的作用域与变量声明提升?

41、如何编写高性能的Javascript?

42、那些操作会造成内存泄漏?

43、jQuery的源码看过吗?能不能简单概况一下它的实现原理?

44、jQuery.fn的init方法返回的this指的是什么对象?为什么要返回this?

45、jquery中如何将数组转化为json字符串,然后再转化回来?

46、jQuery 的属性拷贝(extend)的实现原理是什么,如何实现深拷贝?

47、jquery.extend 与 jquery.fn.extend的区别?

48、jQuery 的队列是如何实现的?队列可以用在哪些地方?

49、谈一下Jquery中的bind(),live(),delegate(),on()的区别?

50、JQuery一个对象可以同时绑定多个事件,这是如何实现的?

51、是否知道自定义事件。jQuery里的fire函数是什么意思,什么时候用?

52、jQuery 是通过哪个方法和 Sizzle 选择器结合的?(jQuery.fn.find()进入Sizzle)

53、针对 jQuery性能的优化方法?

54、Jquery与jQueryUI有啥区别?

55、JQuery的源码看过吗?能不能简单说一下它的实现原理?

56、jquery 中如何将数组转化为json字符串,然后再转化回来?

57、jQuery和Zepto的区别?各自的使用场景?

58、针对 jQuery 的优化方法?

59、Zepto的点透问题如何解决?

60、jQueryUI如何自定义组件?

61、需求:实现一个页面操作不会整页刷新的网站,并且能在浏览器前进、后退时正确响应。给出你的技术实现方案?

62、如何判断当前脚本运行在浏览器还是node环境中?(阿里)

63、移动端最小触控区域是多大?

64、jQuery 的slideUp动画 ,如果目标元素是被外部事件驱动, 当鼠标快速地连续触发外部元素事件, 动画会滞后的反复执行,该如何处理呢?

65、把 Script 标签 放在页面的最底部的body封闭之前 和封闭之后有什么区别?浏览器会如何解析它们?

66、移动端的点击事件的有延迟,时间是多久,为什么会有? 怎么解决这个延时?(click 有300ms 延迟,为了实现safari的双击事件的设计,浏览器要知道你是不是要双击操作。)

67、知道各种JS框架(Angular,Backbone, Ember, React, Meteor, Knockout…)么? 能讲出他们各自的优点和缺点么?

68、Underscore 对哪些 JS 原生对象进行了扩展以及提供了哪些好用的函数方法?

69、解释JavaScript中的作用域与变量声明提升?

70、那些操作会造成内存泄漏?

71、JQuery一个对象可以同时绑定多个事件,这是如何实现的?

72、Node.js的适用场景?(如果会用node)知道route,middleware, cluster, nodemon, pm2, server-side rendering么?

73、解释一下 Backbone 的 MVC 实现方式?

74、什么是“前端路由”?什么时候适合使用“前端路由”? “前端路由”有哪些优点和缺点?

75、知道什么是webkit么? 知道怎么用浏览器的各种工具来调试和debug代码么?

76、如何测试前端代码么? 知道BDD, TDD, Unit Test么? 知道怎么测试你的前端工程么(mocha, sinon, jasmin, qUnit..)?

77、前端templating(Mustache, underscore,handlebars)是干嘛的, 怎么用?

78、简述一下 Handlebars 的基本用法?

79、简述一下 Handlerbars 的对模板的基本处理流程,如何编译的?如何缓存的?

80、用js实现千位分隔符?(来源:前端农民工,提示:正则+replace)

81、检测浏览器版本版本有哪些方式?

82、我们给一个dom同时绑定两个点击事件,一个用捕获,一个用冒泡,你来说下会执行几次事件,然后会先执行冒泡还是捕获。

 

0 0
原创粉丝点击