前端经典面试题.docx

上传人:b****8 文档编号:9848493 上传时间:2023-02-07 格式:DOCX 页数:24 大小:29.45KB
下载 相关 举报
前端经典面试题.docx_第1页
第1页 / 共24页
前端经典面试题.docx_第2页
第2页 / 共24页
前端经典面试题.docx_第3页
第3页 / 共24页
前端经典面试题.docx_第4页
第4页 / 共24页
前端经典面试题.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

前端经典面试题.docx

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

前端经典面试题.docx

前端经典面试题

1,html和xml有什么区别

html是超文本标记语言xml是可扩展标记语言

html语法宽松,xml语法严谨

html使用固有标记,xml没有固有标记

html标签预定义,xml标签可扩展,可定义

html是用来显示数据,xml是用来描述和存储数据

2,css有哪几种选取器?

权重优先级?

第一种为属性选取器

第二种为id选取器

第三种为class选取器

第四种为伪类选取器

第五种是后裔选取器

第六种是标签选取器

第七种是通用选取器

第八种是伪元素选取器

1. 第一等:

代表内联样式,如:

style=””,权值为1000。

2. 第二等:

代表ID选取器,如:

#content,权值为0100。

3. 第三等:

代表类,伪类和属性选取器,如.content,权值为0010。

4. 第四等:

代表类型选取器和伪元素选取器,如divp,权值为0001。

5. 通配符、子选取器、相邻选取器等。

如*、>、+,权值为0000。

6. 继承样式没有权值。

3,网页有哪几某些构成?

构造层:

html

表达层:

css

行为层:

js和dom

4,一种200*200div在不同辨别率屏幕上下左右居中,用css实现

Div{

position:

absolute;

width:

200px;

height:

200px;

top:

50%;

left:

50%;

margin-top:

-100px;

margin-left:

-100px;

}

5,阐述清晰浮动几种方式

第一种父级div定义高度height适合高度固定布局

第二种父级div定义overflow:

hidden

第三种结尾处加空标签clear:

both让父级自动获取高度

第四种父级div定义伪类:

after和zoom

6,解释csssprites,如何使用?

CSSSprites其实就是把网页中某些背景图片整合到一张图片文献中,再运用CSS“background-image”,“background-repeat”,“background-position”组合进行背景定位,background-position可以用数字能精准定位出背景图片位置。

CSSSprites为某些大型网站节约了带宽,让提高了顾客加载速度和顾客体验,不需要加载更多图片

7,如何用原生js给一种按钮绑定两个onclick事件?

Varbtn1=document.getElementsById(“btn”);

btn1.addEnventListener(“click”,”hello1);

btn1.addEnventListener(“click”,”hello2);

functionhello1(){

alert(“hello1”);

}

functionhello2(){

alert(“hello2”);

}

8,拖曳会用到哪些事件?

Dragstart

Dragenter

Dragover

Dragleave

Drag

Drop

Dragend

9,请列举jQuery中选取器?

1,基本选取器

ID,class,元素之类

2,层级选取器

返回是jQuery对象才可以进行链式操作

如后裔元素,子元素,兄弟元素,相邻元素

3,过滤选取器

基本过滤,内容过滤,可见性过滤,属性过滤,子元素过滤和表单对象属性过滤选取器

10,JavaScript中有哪些定期器,她们区别和用法是什么?

SetTimeout只会执行一次

SetInterval会始终重复执行

方式都为:

settimeout(函数,时间)

11,请描述一下cookiessessionstorage和localstorage区别

相似点:

都储存在客户端上

不同点:

1储存大小

Cookies数据大小不能超过4k

Sessionstorage和Localstorage比cookies大,可以达到5m或更多

2有效时间

Localstorage储存持久数据,浏览器关闭后也不会丢失,除非积极删除数据

Sessionstorage数据在关闭游览器之后自动删除

Cookies设立cookies过期时间之前始终有效,虽然窗口和游览器关闭。

3数据与服务器之间交互方式

Cookies数据会自动传递到服务器,服务器端也可以写cookies到客户端

Sessionstorage和localstorage不会上传到服务器,仅在本地保存

12,计算一种数组arr所有元素和

//可以通过document.getelmentbyid().value;来获取输入框中值

functionsum2(){

vararr1=[1,2,3,4,5,6,7,8,9];

varsum1=0;

for(vari=0;i<=arr1.length;i++){

if(typeofarr1[i]=="number"){

sum1+=arr1[i];

}

}

document.write(sum1);

}

13,编写一种办法去掉数组里重复内容vararr=[1,2,3,4,5,1,2,3]

functionarr1(){

vararr2=[1,2,3,4,5,1,2,3];

vars=[];

for(i=0;i

if(s.indexOf(arr2[i])==-1){

s.push(arr2[i]);

}

}

console.log(s);

}

14,document.write和innerHTML区别是什么?

Document.write是直接写入到页面内容流,如果之前没有调用document.Open。

那么浏览器会自动调用open,页面被重写

innerHTML将内容写入某个DOM节点,不会导致页面所有重绘。

精准。

15,ajax环节

Ajax异步JavaScript和xml可以局部刷新网页数据而不是重新加载整个网页

第一步,创立xmlhttprequest对象,varxmlhttp=newXmlHTTPrequest();

Xmlhttprequest对象用来和服务器互换数据

Varxhttp;

If(windows.XMLHttpRequest){

//当前主流浏览器

Xhttp=newXMLHttpRequst();

}else{

Xhttp=newActiveXObject(“Mirosoft.XMLHTTP”);

}

第二步,xmlHTTPrequest对象open()和send()办法发送资源祈求到服务器,

第三步,使用xmlhttprequest对象responseText或responseXML属性获得服务器响应

第四部,onreadystatechange函数,当发送祈求到服务器,咱们想要服务器响应执行某些功能就需要使用使用onreadystatechange函数,每次xmlhttprequest对象readystate发生变化都会触发onreadystatechange函数。

16,xml和json区别,请用四点来形容

Json相对于xml来讲,数据体积小,传播速度快

Json与JavaScript更好交互,更好数据交互

Xml对数据描述性比较好

Json解析速度要远远快于XML

17,box-sizing惯用属性有哪些?

有哪些作用?

属性值

· box-sizing:

content-box

· box-sizing:

border-box

· box-sizing:

inherit

content-box

· 这是box-sizing默认属性值

· 是CSS2.1中规定宽度高度显示行为

· 在CSS中定义宽度和高度就相应到元素内容框

· 在CSS中定义宽度和高度之外绘制元素内边距和边框

 

border-box

· 在CSS中微元素设定宽度和高度就决定了元素边框盒

· 即为元素在设立内边距和边框是在已经设定好宽度和高度之内进行绘制

· CSS中设定宽度和高度减去边框和内间距才干得到元素内容所占实际宽度和高度

(Q1)box-sizing:

content-box|border-box|inherit;

(Q2)content-box:

宽度和高度分别应用到元素内容框。

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

border-box:

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

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

18,使一种300*200div实现屏幕水平居中

前面已有一种办法了

第二种办法:

div{

left:

0px;

right:

0px;

top:

0px;

bottom:

0px;

margin:

auto;

position:

absolute;

height:

200px;

width:

300px;

}

第三种办法是运用jQuery

$(window).resize(function(){

    $(".myblock").css({

        position:

"absolute",

        left:

($(window).width()-$(".myblock").outerWidth())/2,

        top:

($(window).height()-$(".myblock").outerHeight())/2    });       

});

此外在页面载入时,就需要调用resize()办法

$(function(){

    $(window).resize();

});

19,三个盒子,左右定宽,中间自适应办法有几种?

第一种办法:

左右采用浮动中间采用margin-left和margin-right办法

代码:

100%;margin:

0auto;">

200px;float:

right;background-color:

#000000;">11

200px;float:

left;background-color:

red;">33

200px;margin-right:

200px;background-color:

green;">22

 

第二种办法:

左右采用绝对定位,中间采用margin-left和margin-right

代码:

100%;margin:

0auto;">

200px;position:

absolute;left:

0px;background-color:

#000000;">11

200px;position:

absolute;right:

0px;background-color:

red;">33

200px;margin-right:

200px;background-color:

green;">22

 

第三种办法负margin值

 maincontent

 leftcontent

 right

#main{

 float:

 left;

 width:

 100%;

}

#mainContainer{

 margin:

 0230px;

 height:

 200px;

 background:

 green;

}

#left{

 float:

 left;

 margin-left:

 -100%;

 width:

 230px} 

#right{

 float:

 left;

 margin-left:

 -230px;

 width:

 230px;

#left.inner,

#right.inner{

 background:

 orange;

 margin:

 010px;

 height:

 200px;

}

20,js有几种数据类型?

其中基本数据类型有哪些?

基本数据类型有Boolean,undefined,null,number,string

应用类型有object,array,function

21,undefined和null区别

Null代表空值,代表一种空对象指针,一种特殊对象值

Undefined是未定义,类型也是undefined

22,http和https有什么区别?

如何灵活运用?

Http是http运营在TCP之上,传播内容是明文,客户端和服务器无法验证对方身份。

HTTPS是http运营在SSL/tls之上,SSL/tls运营在TCP上,所有内容都是通过加密。

加密采用对称加密,但是秘钥用服务器证书进行非对称加密。

服务器和客户端都是可以互相验证身份。

23,常用Http状态码

2开头,祈求成功,表达到功解决了祈求状态代码

3开头,祈求重定向,表达完毕祈求,需要进一步操作,普通是重定向

4开头,祈求错误,表达祈求出错,妨碍了服务器解决

5开头,这些状态码表达服务器在尝试解决祈求时发生内部错误,服务器自身出错而不是祈求出错

24,如何进行网站性能优化

因素:

顾客角度加载速度提高,更好交互体验

服务商角度减少页面祈求,减少带宽,节约资源

办法:

1,JavaScript优化和打包

2,按需加载资源

3,在使用DOM操作库时用上array-ids

4,缓存

5,启用HTTP/2

6,应用性能分析

7,使用负载均衡方案

8,同构

9,使用索引加快数据库查询

10,使用更快转译方案

11,避免因JavaScript和css使用而阻塞渲染

12,图片编码优化

 

25,react和vue有哪些不同,说说你对这两个框架看法

相似点:

都支持服务器渲染

均有virtualDOM,组件化开发,通过props参数进行父子组件数据传递,都实现了webComponent规范

数据驱动视图

都支持native方案,reactreactnative和vueweex

不同点:

react严格上只针对MVCview层,vue则是mvvm模式

VirtualDOM不同样,vue会跟踪每一种组件依赖关系,不需要重新渲染整个组件树,而对于react来说,每次应用状态被变化,所有组件都会被重新渲染,因此react需要shouldComponentUPdate这个生命周期函数来进行控制。

组件写法不同样。

数据绑定,vue是双向,react是单向

State对象在react应用中不可变,需要使用setstate办法更新状态,在vue中state对象对象不是必要,数据由data属性在vue对象中管理

26,什么是mvvmmvc有什么区别,原理?

1,MVC(model-view-controller)

MVC是比较直观架构模式,顾客模式->view(负责接受顾客操作输入)->controller(业务逻辑解决)->view(将成果反馈给view)

2,MVVM(model-view-viewmodel)

将”数据模型数据双向绑定”思想作为核心,因而model和view没有什么关系,之后痛过viewmodel进行交互,而model和viewmodel之间交互是双向,因而数据视图变化会同步修改数据源,而数据源数据变化也会立即反映view。

27,px和em区别

Px表达像素,是一种绝对单位,不会由于其她元素而变化

Em表达相对于父元素字体大小,em是相对单位,会受到其她元素影响

28,优雅降级和渐进增强

渐进增强(向上兼容):

一开始就针对低版本浏览器进行构筑界面,完毕基本功能,然后在针对高档浏览器进行效果,交互,追加功能达到更好体验

优雅降级(向下兼容):

一开始就构建站点完整功能,然后针对浏览器测试和修复。

29,eval()作用

把字符串参数解析成JS代码并运营,并返回执行成果;

例如:

eval(“2+3”);//执行加运算并返回执行成果。

Eval(“varage=10”);//声明一种变量age

Eval()作用域

Function(){

Eval(“varx=1”);//等效于varx=1;

Console.log(x);//输出1

}

a();

console.log(x);//错误,没有定义x

30,js哪些操作会泄露内存

1,意外全局变量引起内存泄漏

2,闭包引起

3,没有清理DOM元素应用

4,被遗忘定期器或者回调

5,子元素存在引起

31,浏览器缓存有哪些?

普通缓存有哪几种?

1,HTTP缓存

2,Websql

3,Cookies

4,Localstorage

5,Sessionstorage

6,Flash缓存

 

32,bootstrap响应式原理

比例布局+媒体查询

33,关于js事件冒泡与js时间代理(事件委托)

1,事件冒泡:

当一种子元素被触发时(如onclick),该事件会从事件源(被触发子元素)开始逐级向上传播,出发父级元素点击事件。

2,事件委托:

将子元素事件通过冒泡形式交由父元素来执行

例如:

1. var ul = document.getElementById('parentUl');  

2.     ul.onclick=function (event) {  

3.       var e = event||window.event,  

4.               source = e.target || e.srcElement;//target表达在事件冒泡中触发事件源元素,在IE中是srcElement  

5.         if(source.nodeName.toLowerCase() == "li"){   //判断只有li触发才会输出内容  

6.             alert(source.innerHTML);  

7.         }  

8.         stopPropagation(e);                           //制止继续冒泡  

9.     };  

10.     function addElement() {  

11.         var li = document.createElement('li');  

12.         li.innerHTML="我是新孩子";  

13.         ul.appendChild(li);  

14.     }  

34,css样式覆盖规则

规则一:

由于继承而发生样式冲突时,近来祖先获胜(就近原则);

规则二:

继承样式和直接指定样式冲突时,直接指定样式获胜

规则三:

直接指定样式发生冲突时,样式权值高获胜;

规则四:

样式权值相等时,后者获胜。

规则五:

important样式不被覆盖。

35,请简要描述margin重叠问题以及解决方式

1,同向margin重叠

这时候重叠之后margin值由发生重叠两片最大值决定;如果其中一种浮现负值,则由最大正边距减去绝对值最大负边距,如果没有最大正边距,则由0减去绝对值最大负边距。

解决办法:

(1)在最外层div中加入overflow:

hidden;zoom:

1;(zoom这个属性是ie专有属性,除了设立或者检索对象缩放比例之外,它尚有可以触发iehaslayout属性,清除浮动,清除margin重叠等作用。

(2)在最外层加入padding:

1px;

(3)在最外层加入:

border:

1pxsolid#000000;

2,异向重叠问题:

Float:

left(ie6专属,或解决ie8+等浏览器同向重叠问题)

36,position值,relative\absolute\fixed分别相对于进行谁定位?

Absolute:

绝对定位相对于近来一级

Fixed:

绝对定位相对于浏览器窗口或frame进行定位

Relative:

相对定位相对于其在普通流位置

Static:

默认值没有定位

Sticky:

粘性定位文档位置依照正常文档流计算得出

37,什么是闭包,如何使用,为什么使用?

闭包就是在函数内定义一种函数。

长处:

可以读取函数内部变量这些变量值始终保存在内存中

缺陷:

内存消耗大且容易导致内存泄漏闭包会在父函数外部,变化父函数内部变量值

38,请解释一下jsonp工作原理,以及它为什么不是真正ajax。

Jsonp是一种简朴跨域方式;HTML中script标签可以加载并执行其她域javascript,于是咱们可以通过script标记来动态加载其她域资源

JSONP易于实现,但是也会存在某些安全隐患,如果第三方脚本随意地执行,那么它就可以篡改页面内容,截获敏感数据。

但是在受信任双方传递数据,JSONP是非常适当选取。

AJAX是不跨域,而JSONP是一种是跨域,尚有就是两者接受参数形式不同样

 

39,请解释一下JavaScript同源政策。

同源政策规定跨域之间脚本是隔离,一种域脚本不能访问和操作此外一种域绝大某些属性和办法。

当两个域具备相似合同,相似端口,相似host,那么咱们就可以以为是相似域。

40,如何添加,移除,移动,复制,创立和查找节点?

1,创立新节点

Createdocumentfragment()//创立一种DOM片段

CreateElement()//创立一种详细元素

CreateTextNode()//创立一种文本节点

2,添加,移除,替代,插入

Appendchild()//添加

Removechild()//移除

Replacechild()//替代

InsertBefore()//插入

3,查找

GetelementsBytagname()//通过标签名

Getelementsbyname()//通过元素name属性值

GetelementbyId()//通过元素id,唯一性

41,垃圾回收机制方式及内存管理

垃圾回收机制

1,定义和用法:

垃圾回收机制,执行环境负责管理代码执行过程中使用内存。

2,原理:

垃圾回收机制会定期找出那些不再使用变量,然后释放其内存。

但是这个过程不是实时,开销较大,因此会按固

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

当前位置:首页 > 高中教育 > 高中教育

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

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