前端开发面试题.docx

上传人:b****7 文档编号:23754482 上传时间:2023-05-20 格式:DOCX 页数:25 大小:28.51KB
下载 相关 举报
前端开发面试题.docx_第1页
第1页 / 共25页
前端开发面试题.docx_第2页
第2页 / 共25页
前端开发面试题.docx_第3页
第3页 / 共25页
前端开发面试题.docx_第4页
第4页 / 共25页
前端开发面试题.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

前端开发面试题.docx

《前端开发面试题.docx》由会员分享,可在线阅读,更多相关《前端开发面试题.docx(25页珍藏版)》请在冰豆网上搜索。

前端开发面试题.docx

前端开发面试题

HTML

1.Doctype作用?

标准模式与兼容模式各有什么区别?

(1)、

DOCTYPE>声明位于位于HTML文档中的第一行,处于标签之前。

告知阅读器的解析器用什么文档标准解析那个文档。

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

(2)、标准模式的排版和JS运作模式都是以该阅读器支持的最高标准运行。

在兼容模式中,页面以宽松的向后兼容的方式显示,模拟老式阅读器的行为以避免站点无法工作。

2.HTML5什么缘故只需要写

DOCTYPEHTML>?

HTML5不基于SGML,因此不需要对DTD进行引用,可是需要doctype来标准阅读器的行为(让阅读器依照它们应该的方式来运行);而HTML4.01基于SGML,因此需要对DTD进行引用,才能告知阅读器文档所利用的文档类型。

3.行内元素有哪些?

块级元素有哪些?

空(void)元素有那些?

第一:

CSS标准规定,每一个元素都有display属性,确信该元素的类型,每一个元素都有默许的display值,如div的display默许值为“block”,那么为“块级”元素;span默许display属性值为“inline”,是“行内”元素。

(1)行内元素有:

abspanimginputselectstrong(强调的语气)

(2)块级元素有:

divulollidldtddh1h2h3h4…p

(3)常见的空元素:



鲜为人知的是:

4.页面导入样式时,利用link和@import有什么区别?

(1)link属于XHTML标签,除加载CSS外,还能用于概念RSS,概念rel连接属性等作用;而@import是CSS提供的,只能用于加载CSS;

(2)页面被加载的时,link会同时被加载,而@import引用的CSS会等到页面被加载完再加载;

(3)import是CSS2.1提出的,只在IE5以上才能被识别,而link是XHTML标签,无兼容问题;

5.阅读器的内核别离是什么?

*IE阅读器的内核Trident、Mozilla的Gecko、Chrome的Blink(WebKit的分支)、Opera内核原为Presto,现为Blink;

6.常见兼容性问题?

*png24位的图片在iE6阅读器上显现背景,解决方案是做成PNG8.

*阅读器默许的margin和padding不同。

解决方案是加一个全局的*{margin:

0;padding:

0;}来统一。

*IE6双边距bug:

块属性标签float后,又有横行的margin情形下,在ie6显示margin比设置的大。

浮动ie产生的双倍距离#box{float:

left;width:

10px;margin:

000100px;}这种情形之下IE会产生20px的距离,解决方案是在float的标签样式操纵中加入——_display:

inline;将其转化为行内属性。

(_那个符号只有ie6会识别)

渐进识别的方式,从整体中慢慢排除局部。

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

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

css

.bb{

background-color:

#f1ee18;/*所有识别*/

.background-color:

#00deff\9;/*IE六、7、8识别*/

+background-color:

#a200ff;/*IE六、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{}

7.html5有哪些新特性、移除那些元素?

如何处置HTML5新标签的阅读器兼容问题?

如何区分HTML和HTML5?

*HTML5此刻已经不是SGML的子集,主若是关于图像,位置,存储,多任务等功能的增加。

*绘画canvas

用于媒介回放的video和audio元素

本地离线存储localStorage长期存储数据,阅读器关闭后数据不丢失;

sessionStorage的数据在阅读器关闭后自动删除

语意化更好的内容元素,比如article、footer、header、nav、section

表单控件,calendar、date、time、email、url、search

新的技术webworker,websockt,Geolocation

*移除的元素

纯表现的元素:

basefont,big,center,font,s,strike,tt,u;

对可用性产生负面阻碍的元素:

frame,frameset,noframes;

支持HTML5新标签:

,能够利用这一特性让这些阅读器支持HTML5新标签,阅读器支持新标签后,还需要添加标签默许的样式:

*固然最好的方式是直接利用成熟的框架、利用最多的是html5shim框架

--[ifltIE9]>

[endif]-->

8.语义化的明白得?

用正确的标签做正确的情形!

html语义化确实是让页面的内容结构化,便于对阅读器、搜索引擎解析;在没有样式CCS情形下也以一种文档格式显示,而且是容易阅读的。

搜索引擎的爬虫依托于标记来确信上下文和各个关键字的权重,利于SEO。

使阅读源代码的人对网站更易将网站分块,便于阅读保护明白得。

9.HTML5的离线贮存?

localStorage长期存储数据,阅读器关闭后数据不丢失;

sessionStorage数据在阅读器关闭后自动删除。

10.写)描述一段语义的html代码吧。

(HTML5中新增加的很多标签(如:

11.iframe有那些缺点?

*iframe会阻塞主页面的Onload事件;

*iframe和主页面共享连接池,而阅读器对相同域的连接有限制,因此会阻碍页面的并行加载。

利用iframe之前需要考虑这两个缺点。

若是需要利用iframe,最好是通过javascript

动态给iframe添加src属性值,如此能够能够绕开以上两个问题。

12.HTML5的form如何关闭自动完成功能?

给不想要提示的form或下某个input设置为autocomplete=off。

13.请描述一下cookies,sessionStorage和localStorage的区别?

cookie在阅读器和效劳器间来回传递。

sessionStorage和localStorage可不能

sessionStorage和localStorage的存储空间更大;

sessionStorage和localStorage有更多丰硕易用的接口;

sessionStorage和localStorage各自独立的存储空间;

14.如何实现阅读器内多个标签页之间的通信?

(阿里)

挪用localstorge、cookies等本地存储方式

15.webSocket如何兼容低阅读器?

(阿里)

AdobeFlashSocket、ActiveXHTMLFile(IE)、基于multipart编码发送XHR、基于长轮询的XHR

CSS

16.介绍一下CSS的盒子模型?

(1)有两种,IE盒子模型、标准W3C盒子模型;IE的content部份包括了border和pading;

(2)盒模型:

内容(content)、填充(padding)、边界(margin)、边框(border).

17.CSS选择符有哪些?

哪些属性能够继承?

优先级算法如何计算?

CSS3新增伪类有那些?

*1.id选择器(#myid)

2.类选择器(.myclassname)

3.标签选择器(div,h1,p)

4.相邻选择器(h1+p)

5.子选择器(ul>li)

6.后代选择器(lia)

7.通配符选择器(*)

8.属性选择器(a[rel="external"])

9.伪类选择器(a:

hover,li:

nth-child)

*可继承的样式:

font-sizefont-familycolor,ULLIDLDDDT;

*不可继承的样式:

borderpaddingmarginwidthheight;

*优先级就近原那么,同权重情形下样式概念最近者为准;

*载入样式以最后载入的定位为准;优先级为:

!

important>id>class>tag

important比内联优先级高

18.CSS3新增伪类举例:

p:

first-of-type选择属于其父元素的首个

元素的每一个

元素。

p:

last-of-type选择属于其父元素的最后

元素的每一个

元素。

p:

only-of-type选择属于其父元素唯一的

元素的每一个

元素。

p:

only-child选择属于其父元素的唯一子元素的每一个

元素。

p:

nth-child

(2)选择属于其父元素的第二个子元素的每一个

元素。

:

enabled:

disabled操纵表单控件的禁用状态。

:

checked单项选择框或复选框被选中。

19.如何居中div?

如何居中一个浮动元素?

给div设置一个宽度,然后添加margin:

0auto属性

div{

width:

200px;

margin:

0auto;

}

居中一个浮动元素:

确信容器的宽高宽500高300的层

设置层的外边距

.div{

Width:

500px;height:

300px;//高度能够不设

Margin:

-150px00-250px;

position:

relative;相对定位

background-color:

pink;//方便看成效

left:

50%;

top:

50%;

}

20.列出display的值,说明他们的作用。

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

1.block象块类型元素一样显示。

none缺省值。

象行内元素类型一样显示。

inline-block象行内元素一样显示,但其内容象块类型元素一样显示。

list-item象块类型元素一样显示,并添加样式列表标记。

2.absolute:

生成绝对定位的元素,相关于static定位之外的第一个父元素进行定位。

fixed(老IE不支持):

生成绝对定位的元素,相关于阅读器窗口进行定位。

relative:

生成相对定位的元素,相关于其正常位置进行定位。

static:

默许值。

没有定位,元素出此刻正常的流中(忽略top,bottom,left,rightz-index声明)。

inherit规定从父元素继承position属性的值。

21.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

22.什么缘故要初始化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;}

23.对BFC标准的明白得?

(W3CCSS2.1标准中的一个概念,它决定了元素如何对其内容进行定位,和与其他元素的关系和彼此作用。

以下是权重的规那么:

标签的权重为1,class的权重为10,id的权重为100,以下例子是演示各类概念的权重值:

/*权重为1*/

div{

}

/*权重为10*/

.class1{

}

/*权重为100*/

#id1{

}

/*权重为100+1=101*/

#id1div{

}

/*权重为10+1=11*/

.class1div{

}

/*权重为10+10+1=21*/

.class1.class2div{

}

若是权重相同,那么最后概念的样式会起作用,可是应该幸免这种情形显现

24.若是需要手动写动画,你以为最小时刻距离是多久,什么缘故?

(阿里)

多数显示器默许频率是60Hz,即1秒刷新60次,因此理论上最小距离为1/60*1000ms=

25.display:

inline-block何时会显示间隙?

(携程)

移除空格、利用margin负值、利用font-size:

0、letter-spacing、word-spacing

JavaScript

1.JavaScript原型,原型链?

有什么特点?

*原型对象也是一般的对象,是对象一个自带隐式的__proto__属性,原型也有可能有自己的原型,若是一个原型对象的原型不为null的话,咱们就称之为原型链。

*原型链是由一些用来继承和共享属性的对象组成的(有限的)对象链。

2.JavaScript的数据对象有那些属性值?

 writable:

那个属性的值是不是能够改。

 configurable:

那个属性的配置是不是能够删除,修改。

 enumerable:

那个属性是不是能在for…in循环中遍历出来或在Object.keys中列举出来。

 value:

属性值。

*当咱们需要一个属性的时,Javascript引擎会先看当前对象中是不是有那个属性,若是没有的话,就会查找他的Prototype对象是不是有那个属性。

functionclone(proto){

  functionDummy(){}

  Dummy.prototype=proto;

  Dummy.prototype.constructor=Dummy;

  returnnewDummy();//等价于Object.create(Person);

}

functionobject(old){

functionF(){};

F.prototype=old;

returnnewF();

}

varnewObj=object(oldObject);

3.说几条写JavaScript的大体标准?

1.不要在同一行声明多个变量。

2.请利用===/!

==来比较true/false或数值

3.利用对象字面量替代newArray这种形式

4.不要利用全局函数。

6.函数不该该有时候有返回值,有时候没有返回值。

9.for-in循环中的变量应该利用var关键字明确限定作用域,从而幸免作用域污染。

4.eval是做什么的?

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

应该幸免利用eval,不平安,超级耗性能(2次,一次解析成js语句,一次执行)。

5.写一个通用的事件侦听器函数。

markyun.Event={

//页面加载完成后

readyEvent:

function(fn){

if(fn==null){

fn=document;

}

varoldonload=window.onload;

if(typeofwindow.onload!

='function'){

window.onload=fn;

}else{

window.onload=function(){

oldonload();

fn();

};

}

},

//视能力别离利用dom0||dom2||IE方式来绑定事件

//参数:

操作的元素,事件名称,事件处置程序

addEvent:

function(element,type,handler){

if(element.addEventListener){

//事件类型、需要执行的函数、是不是捕捉

element.addEventListener(type,handler,false);

}elseif(element.attachEvent){

element.attachEvent('on'+type,function(){

handler.call(element);

});

}else{

element['on'+type]=handler;

}

},

//移除事件

removeEvent:

function(element,type,handler){

if(element.removeEventListener){

element.removeEventListener(type,handler,false);

}elseif(element.datachEvent){

element.detachEvent('on'+type,handler);

}else{

element['on'+type]=null;

}

},

//阻止事件(主若是事件冒泡,因为IE不支持事件捕捉)

stopPropagation:

function(ev){

if(ev.stopPropagation){

ev.stopPropagation();

}else{

ev.cancelBubble=true;

}

},

//取消事件的默许行为

preventDefault:

function(event){

if(event.preventDefault){

event.preventDefault();

}else{

event.returnValue=false;

}

},

//获取事件目标

getTarget:

function(event){

returnevent.target||event.srcElement;

},

//获取event对象的引用,取到事件的所有信息,确保随时能利用event;

getEvent:

function(e){

varev=e||window.event;

if(!

ev){

varc=this.getEvent.caller;

while(c){

ev=c.arguments[0];

if(ev&&Event==ev.constructor){

break;

}

c=c.caller;

}

}

returnev;

}

};

6.Node.js的适用处景?

高并发、谈天、实时消息推送

7.介绍js的大体数据类型。

number,string,boolean,object,undefined

8.Javascript如何实现继承?

通过原型和构造器

9.["1","2","3"].map(parseInt)答案是多少?

[1,NaN,NaN]因为parseInt需要两个参数(val,radix),其中radix表示解析时用的基数。

map传了3个(

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 历史学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1