面试题总结

CSS篇:

1、CSS是什么、用来做什么?

答:用于布局与美化页面,是一种标记语言,不需要编译。通过更改CSS代码来改变 网页的整体表现形式。

2、EMPXREM的区别?

答:EM:根据一个基点来设置自己的大小,是一个相对值,并非固定,一般根据父元 素属性设置本身大小,与PX换算是:body{font-size=62.5%}IE6,IE8不支持。

PX:就是像素,比较稳定和精确。但是大小被固定了,当浏览器视口改变时,内 容不能相对应的改变。

REM:相对于根元素<Html>来设置自身大小,我们只需要在根元素确定一个参考 值。IE6,IE8不支持。

3、Doctype的作用?

答:用于声明HTML文档使用哪种规范(HTML/XHTML)。

4、XHTMLHTML有什么区别?

答:HTML是一种基本的Web设计语言;XHTML是一种基于XML的置标语言。

XHTML更加严格:元素必须被正确嵌套、必须被关闭、标签名必须使用小写、文 档必须有根元素。

5、行内元素、块级元素、Void空元素?

答:行内:aspaniimgemselectlable

块级:divdldtddullipformtableh1h6

Voidbrhr

6、CSS选择器有哪些,优先级?

答:主要为三类:IDClass》标签

可组合为:后代、子代、群组、伪类、通用

7、CSS盒模型?

答:外边距:margin,边框:border,内边距:padding

8、Display有哪些主要属性,作用?

答:none:隐藏元素;block:元素显示为块级元素,前后显示换行符;

inline:默认,显示为内联元素;inline-block:行内块元素。

9、Position有哪些主要属性,作用?

答:absolute:绝对定位,相对于第一个有定位属性的父级元素来定位;

fixed:绝对定位,相对于浏览器窗口进行定位;

Relative:相对定位,相对于当前正常位置经行定位;

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

10、前端页面由那三层构成?

答:结构层:HTML;表现层:CSS;行为层:JavaScript

11、什么是语义化的标签,有什么优点?

答:能直观认识的标签;能使搜索引擎快速的抓取。

12、如何对网页经行优化?

答:文件合并、文件压缩、使用CDN托管、将一些小图片做成雪碧图,减少对服务器 端的请求次数。

13、HTML5有什么新标签?

答:header:头部;footer:尾部;nav:导航/菜单;video:视频;audio:音频;canvas 画布;figure:图文并茂;...

14、列举CSS3一些属性?

答:border-radius:圆角;box-shadow:边框阴影;text-overflow:文本溢出;background 背景图片可用多张;transform:使什么变形;transition:过渡时间。...

15、如何让一段文本中的所有首字母大写?

答:text-transformcapitalizeuppercase(所有单词大写);lowercase(所有单词小写)。

16、减少页面加载时间的方法?

答:尽量减少HTTP请求次数;CSS文件放头部;JS文件放尾部;压缩CSSJS文件; 尽可能优化代码,减少DCOM元素;AJAX采用缓存调用。

17、为什么要初始CSS样式?

答:因为浏览器的兼容问题,不同浏览器之间的默认属性不同,如果不初始化CSS 式,页面在不同浏览器之间显示会有差异。

18、当floatmargin同时使用时,IE6的双边差距BUG怎么解决?

答:只需要给第一个浮动元素的CSS样式加上displayinline属性。

19、Firefox中标签的居中解决方法?

答:除了父级元素设置text-aligncenter属性;子级元素还应该设置margin0 auto

20、如何利用button实现链接功能?

    答:<input type=button value="test"  onclick="window.navigate('http://hao123.com')" />只针对IE;
  <input type=button value="test" onclick="location.href =  'http://hao123.com'" />兼容所有浏览器。

JS篇:

1、JavaScript是一门什么样的语言,它有哪些特点

答:是一种脚本语言;

特点:1语法类似于常见高级语言;

2)脚本语言,不需要编译就可以由解释器直接运行;

3)变量松散定义,属于弱类型语言;

4)面向对象。

2、闭包的原理与好处和坏处?

答:闭包:闭包是一个拥有许多变量和绑定了这些变量的环境表达式,通常是一个函数 ,因此这些变量也是该表达式的一部分;也就是说JS中所有的function都是一个 闭包,只是嵌套的function所产生的闭包更为强大。

好处:1创建一个匿名函数,并立即执行,由于外部无法引用内部变量,因此在 执行后能很快释放,不会造成全局污染。

2)缓存,可以将值存储起来,当需要调用的时候,首先在缓存中查找,如果找不 到再进行计算,然后更新缓存并返回值。

3)实现封装。

4)实现面向对象中的对象。

坏处:闭包会导致变量不能释放,引起内存泄露。

3、类的三大特性?

答:继承、封装、多态

4、JSTypeof的返回数据类型有哪些?

答:Objectnumberfunctionbooleanstringundefined

5、JS得到DOM的方法?

答:根据ID获取对象:document.getElementByIdID);

根据Tag获取对象数组:document.getElementsByTagName“p”);

根据Name获取对象数组:document.getElementsByNameNAME);

根据Class获取对象数组:document.getElementsByClass.Class)。

6、IE与火狐事件机制有什么区别;阻止冒泡事件的代码? 

答:function stopEvent(){ //阻止冒泡事件

 //取消事件冒泡 

  var e=arguments.callee.caller.arguments[0]||event; //若省略此句,下面的e改为event IE运行可以,但是其他浏览器就不兼容

  if (e && e.stopPropagation) { 

   // this code is for Mozilla and Opera

   e.stopPropagation(); 

  } else if (window.event) { 

   // this code is for IE 

   window.event.cancelBubble = true; 

  } 

}

一般在IE环境下可以省略掉(var e=arguments.callee.caller.arguments[0]||event;)直接运行即可,但是在FF下不行了,它会报e.stopPropagation没有定义,所以要事先定义,才能兼容。

7、Document.onload()和Document.ready()的区别?

答:onload是在整个文档加载完成后就可以直接对DOM进行操作;

ready是在DOM加载完成后就可以直接对DOM进行操作;

在原生JS中并没有Document.ready的直接方法。

8、JSsplit()与join()的区别?

答:split():用于把一个字符串分割成字符串数组;

join():用于把数组中的所有元素放入一个字符串,元素通过指定的分隔符进行 分割;例如:join(“#”),#是任意的。

AJAX篇:

1AJAX什么时候调用?

答:AJAX主要用于提升用户体验,但是不能滥用。多用于提交Form表单或一些不用 刷新整个页面而需要获取后台数据的时候。降低服务器压力。

2JsonP的原理及优缺点?

答:JsonP全称是JSON with Padding,是为了解决跨域请求资源而产生的解决方案。

原理:利用<script>标签没有跨域限制的“漏洞”来达到与第三方通讯 的目的。 当需要通讯时,本站脚本创建一个 <script>元素,地址指向第三方的API网址, 形如<script src="http://www.example.net/api?param1=1¶m2=2"></script> 
并提供一个回调函数来接收数据(函数名可约定,或通过地址参数传递)。 

优点:它不像XMLHttpRequest对象实现的Ajax请求那样受到同源策略 的限制;它的兼容性更好,在更加古老的浏览器中都可以运行,不需要 XMLHttpRequest或ActiveX的支持;并且在请求完毕后可以通过调用 callback的方式回传结果。

缺点:它只支持GET请求而不支持POST等其它类型的HTTP请求;它只 支持跨域HTTP请求这种情况,不能解决不同域的两个页面之间如何进行 JavaScript调用的问题。

3GET请求与POST请求差别?

答:GET:1)Get是向服务器发索取数据的一种请求;

2)Get是获取信息,而不是修改信息,类似数据库查询功能一样,数据不会被修 改;

3)Get传输的数据有大小限制,因为GET是通过URL提交数据,那么GET可提交 的数据量就跟URL的长度有直接关系了,不同的浏览器对URL的长度的限制是 不同的。

4)Get请求的参数会跟在url后进行传递,请求的数据会附在URL之后,以?分割 URL和传输数据,参数之间以&相连,%XX中的XX为该符号以16进制表示的 ASCII,如果数据是英文字母/数字,原样发送,如果是空格,转换为+,如果是中 文/其他字符,则直接把字 符串用BASE64加密。

POST:1)Post是向服务器提交数据的一种请求;

2)Post请求作为HTTP消息的实际内容发送给web服务器,数据放置在HTML Header 内提交,Post没有限制提交的数据;

3)Post比Get安全,对于敏感数据和不是中文字符的数据,用post;

4)POST表示可能修改变服务器上的资源的请求,在服务器端,用Post方式提交 的数据只能用Request.Form来获取。

4NodeJS

答:Node.js 是服务器端的JavaScript运行环境,它具有无阻塞(non-blocking)事件驱动(event-driven)等的特色,Node.js 采用V8引擎,实现了类似Apachenginx的web服务,可以通过它来搭建基于 JavaScript的Web App。NodeJS 被设计用来解决服务端阻塞问题.

开发篇:

1、啥子是模块化开发及优点?

答:在软件开发过程中,把一个源代码的结构分割成一个元系统和一系列的模块;元系 统是指一个能够保持系统运行的最小系统;模块是一个较大系统的独立部件,能独立出 来,又可以在整体中运转。

1)便于维护,在不影响整个系统运转的情况下将一些旧版本的模块替换掉;

2)方便分工,提高开发效率;

3)开发者可根据某种特定功能进行独立开发而不用去协调与其它模块之间的关系;

4)便于用户根据个人需求选择适合自己的模块安装。

框架:

1、LESSSASS的特性?

答:less是基于JS在客户端运行;sass是基于rubu环境在服务器端运行。

声明:less@sass$

1结构清晰,便于扩展。

2可以方便地屏蔽浏览器私有语法差异。封装对浏览器语法差异的重复处理,减 少无意义的劳动。

3可以轻松实现多重继承。

4完全兼容 CSS 代码,可以方便地应用到老项目中。

原文地址:https://www.cnblogs.com/No-nonsense/p/5315818.html