前端面试题干货集合

栏目: CSS · 发布时间: 7年前

内容简介:前端面试题干货集合

前端工程师

前端工程师属于IT技术职业的一种,是近5年发展起来的职业,旧的体系将其定义为Web前端工程师,主要的技术包含: HTMLJavaScrip t、 CSS 。但IT技术属于变化比较快的领域,最近发生了很大的变革,新的体系下,前端工程师技术又增加了: nodejsHybrid App 。前端技术的兴起和网页越来越丰富化,造就了前端的繁荣现象。虽然说入门相比 IT 其他行业简单,继而造成更多人转行和培训机构大量成批送出,但是这个职位依旧稀缺中高级人才。

面试是一个重要的环节,他是公司评判你是否适合和测试你技术的程度的方式,所以如果你想进入到你心仪的公司,那么面试这个环节就不能掉链子,下面是我见到过总结的一些面试题,希望各位前端工程师们能有些许帮助,会定期更新面试题。

HTML/CSS部分

1.什么是盒子模型?

在网页中,一个元素占有空间的大小由几个部分构成,其中包括元素的 内容(content) ,元素的 内边距(padding) ,元素的 边框(border) ,元素的 外边距(margin) 四个部分。这四个部分占有的空间中,有的部分可以显示相应的内容,而有的部分只用来分隔相邻的区域或区域。4个部分一起构成了css中元素的盒模型。

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

  • 行内元素:a、b、span、img、input、strong、select、label、em、button、textarea
  • 块级元素:div、ul、li、dl、dt、dd、p、h1-h6、blockquote
  • 空元素:即系没有内容的HTML元素,例如:br、meta、hr、link、input、img

3、CSS实现垂直水平居中

很经典的问题有很多种方法,下面是其中一种解决办法:

html:

<div class="wrapper">
    <div class="content"></div>
</div>

css:

.wrapper {
  position: relative;
  width: 500px;
  height: 500px;
  background-color: #ddd;
 }
.content{
    background-color:#6699FF;
    width:200px;
    height:200px;
    position: absolute;        //父元素需要相对定位
    top: 50%;
    left: 50%;
    margin-top:-100px ;   //二分之一的height,width
    margin-left: -100px;
}

4.简书一下src和href的区别

  • href 是指向网络资源所在位置,建立和当前元素(锚点)或当前文档(链接)之间的链接,用于超链接。
  • src是指向外部资源的位置,指向的内容将会嵌入到文档中当前标签所在位置;在请求src资源时会将其指向的资源下载并应用到文档内,例如js脚本,img图片和frame等元素。当浏览器解析到该元素时,会暂停其他资源的下载和处理,直到将该资源加载、编译、执行完毕,图片和框架等元素也如此,类似于将所指向资源嵌入当前标签内。这也是为什么将js脚本放在底部而不是头部。

5.什么是css hack

一般来说是针对不同的浏览器写不同的CSS,就是 CSS Hack。 IE浏览器Hack一般又分为三种,条件Hack、属性级Hack、选择符Hack(详细参考CSS文档:css文档)。例如:

// 1、条件Hack
<!--[if IE]>
  <style>
        .test{color:red;}
  </style>
<![endif]-->
// 2、属性Hack
.test{
color:#090\9; /* For IE8+ */
*color:#f00;  /* For IE7 and earlier */
_color:#ff0;  /* For IE6 and earlier */
}
// 3、选择符Hack
* html .test{color:#090;}       /* For IE6 and earlier */
* + html .test{color:#ff0;}     /* For IE7 */

6.简述同步和异步的区别

同步是阻塞模式,异步是非阻塞模式。 同步就是指一个进程在执行某个请求的时候,若该请求需要一段时间才能返回信息,那么这个进程将会一直等待下去,直到收到返回信息才继续执行下去; 异步是指进程不需要一直等下去,而是继续执行下面的操作,不管其他进程的状态。当有消息返回时系统会通知进程进行处理,这样可以提高执行的效率。

7、px和em的区别

px和em都是长度单位,区别是,px的值是固定的,指定是多少就是多少,计算比较容易。em得值不是固定的,并且em会继承父级元素的字体大小。

浏览器的默认字体高都是16px。所以未经调整的浏览器都符合: 1em=16px。那么12px=0.75em, 10px=0.625em

8.什么叫优雅降级和渐进增强?

渐进增强 progressive enhancement: 针对低版本浏览器进行构建页面,保证最基本的功能,然后再针对高级浏览器进行效果、交互等改进和追加功能达到更好的用户体验。 优雅降级 graceful degradation: 一开始就构建完整的功能,然后再针对低版本浏览器进行兼容。 区别: + a. 优雅降级是从复杂的现状开始,并试图减少用户体验的供给 + b. 渐进增强则是从一个非常基础的,能够起作用的版本开始,并不断扩充,以适应未来环境的需要 + c. 降级(功能衰减)意味着往回看;而渐进增强则意味着朝前看,同时保证其根基处于安全地带

浏览器的内核分别是什么?

  • IE: trident内核
  • Firefox:gecko内核
  • Safari:webkit内核
  • Opera:以前是presto内核,Opera现已改用Google Chrome的Blink内核
  • Chrome:Blink(基于webkit,Google与Opera Software共同开发)

JavaScript部分

1.怎样添加、移除、移动、复制、创建和查找节点?

1.创建新节点

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

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

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

2.添加、移除、替换、插入

appendChild() //添加

removeChild() //移除

replaceChild() //替换

insertBefore() //插入

3.查找

getElementsByTagName() //通过标签名称

getElementsByName() //通过元素的Name属性的值

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

2.如何消除一个数组里面重复的元素?

// 方法一:
var arr1 =[1,2,2,2,3,3,3,4,5,6],
    arr2 = [];
for(var i = 0,len = arr1.length; i< len; i++){
    if(arr2.indexOf(arr1[i]) < 0){
        arr2.push(arr1[i]);
    }
}
document.write(arr2); // 1,2,3,4,5,6

3.在Javascript中什么是伪数组?如何将伪数组转化为标准数组?

伪数组(类数组):无法直接调用数组方法或期望length属性有什么特殊的行为,但仍可以对真正数组遍历方法来遍历它们。典型的是函数的argument参数,还有像调用getElementsByTagName,document.childNodes之类的,它们都返回NodeList对象都属于伪数组。可以使用Array.prototype.slice.call(fakeArray)将数组转化为真正的Array对象。

function log(){
 var args = Array.prototype.slice.call(arguments);  
//为了使用unshift数组方法,将argument转化为真正的数组
 args.unshift('(app)');
  console.log.apply(console, args);
};

4.addEventListener最后一个参数是做什么用的

规定事件是冒泡还是捕获。false是冒泡,true是捕获

5.什么是冒泡,什么是捕获

当一个元素触发了一个事件之后就会像上层传递直至body,document。捕获是从最不具体的传至最具体的

6.所有的事件都可以冒泡么

不是,blur focus change不可冒泡

7.怎么取消事件冒泡

eve.preventDefault(阻止事件默认行为)

HTTP

1.一次完整的HTTP事务是怎样的一个过程?

基本流程: + a. 域名解析 + b. 发起TCP的3次握手 + c. 建立TCP连接后发起http请求 + d. 服务器端响应http请求,浏览器得到html代码 + e. 浏览器解析html代码,并请求html代码中的资源 + f. 浏览器对页面进行渲染呈现给用户

更新日志

2017/06/13 第一次更新文章


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Music Recommendation and Discovery

Music Recommendation and Discovery

Òscar Celma / Springer / 2010-9-7 / USD 49.95

With so much more music available these days, traditional ways of finding music have diminished. Today radio shows are often programmed by large corporations that create playlists drawn from a limited......一起来看看 《Music Recommendation and Discovery》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

html转js在线工具
html转js在线工具

html转js在线工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具