《前端面试题及答案汇总HTML.docx》由会员分享,可在线阅读,更多相关《前端面试题及答案汇总HTML.docx(12页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2018前端面试题及答案汇总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、bloc
2、kquote空元素:即系没有内容HTML元素,例如:br、meta、hr、link、input、img3、CSS实现垂直程度居中一道经典问题,实现方法有许多种,以下是其中一种实现:HTML构造: CSS:.wrapperposition:relative;.contentbackground-color:#6699FF;width:200px;height:200px;position: absolute; /父元素须要相对定位top: 50%;left: 50%;margin-top:-100px ; /二分之一height,widthmargin-left: -100px;4、简述一下sr
3、c与href区分href 是指向网络资源所在位置,建立和当前元素(锚点)或当前文档(链接)之间链接,用于超链接。src是指向外部资源位置,指向内容将会嵌入到文档中当前标签所在位置;在恳求src资源时会将其指向资源下载并应用到文档内,例如js脚本,img图片和frame等元素。当阅读器解析到该元素时,会暂停其他资源下载和处理,直到将该资源加载、编译、执行完毕,图片和框架等元素也如此,类似于将所指向资源嵌入当前标签内。这也是为什么将js脚本放在底部而不是头部。5、什么是CSS Hack一般来说是针对不同阅读器写不同CSS,就是 CSS Hack。IE阅读器Hack一般又分为三种,条件Hack、属性
4、级Hack、选择符Hack(具体参考CSS文档:css文档)。例如:/ 1、条件Hack .testcolor:red; / 2、属性Hack.testcolor:#0909; /* For IE8+ */*color:#f00; /* For IE7 and earlier */_color:#ff0; /* For IE6 and earlier */ 3、选择符Hack* html .testcolor:#090; /* For IE6 and earlier */* + html .testcolor:#ff0; /* For IE7 */6、简述同步和异步区分同步是堵塞形式,异步是非
5、堵塞形式。同步就是指一个进程在执行某个恳求时候,若该恳求须要一段时间才能返回信息,那么这个进程将会始终等待下去,直到收到返回信息才接着执行下去;异步是指进程不须要始终等下去,而是接着执行下面操作,不管其他进程状态。当有消息返回时系统会通知进程进展处理,这样可以进步执行效率。7、px和em区分px和em都是长度单位,区分是,px值是固定,指定是多少就是多少,计算比拟简洁。em得值不是固定,并且em会继承父级元素字体大小。阅读器默认字体高都是16px。所以未经调整阅读器都符合: 1em=16px。那么12px=0.75em, 10px=0.625em8、什么叫优雅降级和渐进增加?渐进增加 prog
6、ressive enhancement:针对低版本阅读器进展构建页面,保证最根本功能,然后再针对高级阅读器进展效果、交互等改良和追加功能到达更好用户体验。优雅降级 graceful degradation:一开场就构建完好功能,然后再针对低版本阅读器进展兼容。区分:a. 优雅降级是从困难现状开场,并试图削减用户体验供应b. 渐进增加则是从一个特别根底,可以起作用版本开场,并不断扩大,以适应将来环境须要c. 降级(功能衰减)意味着往回看;而渐进增加则意味着朝前看,同时保证其根基处于平安地带9、阅读器内核分别是什么IE: trident内核Firefox:gecko内核Safari:webkit内
7、核Opera:以前是presto内核,Opera现已改用Google ChromeBlink内核Chrome:Blink(基于webkit,Google与Opera Software共同开发)1、怎样添加、移除、挪动、复制、创立和查找节点?1)创立新节点createDocumentFragment() /创立一个DOM片段createElement() /创立一个具体元素createTextNode() /创立一个文本节点2)添加、移除、交换、插入appendChild() /添加removeChild() /移除replaceChild() /交换insertBefore() /插入3)查找
8、getElementsByTagName() /通过标签名称getElementsByName() /通过元素Name属性值getElementById() /通过元素Id,唯一性2、实现一个函数clone,可以对JavaScript中5种主要数据类型(包括Number、String、Object、Array、Boolean)进展值复制。(Object.prototype.toString.call()方法及面试应用) * 对象克隆 * 支持根本数据类型及对象 * 递归方法3、如何消退一个数组里面重复元素?4、想实现一个对页面某个节点拖曳?如何做?(运用原生JS)。留意:为了让元素可拖动,须要
9、运用 HTML5draggable属性。提示:链接和图片默认是可拖动,不须要 draggable 属性。在拖放过程中会触发以下事务: 在拖动目的上触发事务(源元素): ondragstart - 用户开场拖动元素时触发 ondrag- 元素正在拖动时触发 ondragend- 用户完成元素拖动后触发 释放目的时触发事务: ondragenter- 当被鼠标拖动对象进入其容器范围内时触发此事务 ondragover- 当某被拖动对象在另一对象容器范围内拖动时触发此事务 ondragleave- 当被鼠标拖动对象分开其容器范围内时触发此事务 ondrop- 在一个拖动过程中,释放鼠标键时触发此事务
10、5、在Javascript中什么是伪数组?如何将伪数组转化为标准数组?伪数组(类数组):无法干脆调用数组方法或期望length属性有什么特别行为,但仍可以对真正数组遍历方法来遍历它们。典型是函数argument参数,还有像调用getElementsByTagName,document.childNodes之类,它们都返回NodeList对象都属于伪数组。a. 运用Array.prototype.slice.call();b.运用.slice.call(),理解js原型链都知道,事实上这种方法和第一中方法是一样,但上面第一种方式相对效率更高。c运用ES6中Array.from方法;6、Javas
11、cript中callee和caller作用?caller是返回一个对函数引用,该函数调用了当前函数;callee是返回正在被执行function函数,也就是所指定function对象正文。7、请描绘一下cookies,sessionStorage和localStorage区分sessionStorage用于本地存储一个会话(session)中数据,这些数据只有在同一个会话中页面才能访问并且当会话完毕后数据也随之销毁。因此sessionStorage不是一种许久化本地存储,仅仅是会话级别存储。而localStorage用于许久化本地存储,除非主动删除数据,否则数据是恒久不会过期。web stor
12、age和cookie区分Web Storage概念和cookie相像,区分是它是为了更大容量存储设计。Cookie大小是受限,并且每次你恳求一个新页面时候Cookie都会被发送过去,这样无形中奢侈了带宽,另外cookie还须要指定作用域,不行以跨域调用。除此之外,Web Storage拥有setItem,getItem,removeItem,clear等方法,不像cookie须要前端开发者自己封装setCookie,getCookie。但是Cookie也是不行以或缺:Cookie作用是与效劳器进展交互,作为 标准一局部而存在 ,而Web Storage仅仅是为了在本地“存储”数据而生。8、手写
13、数组快速排序关于快排算法具体说明,可以参考阮一峰教师文章快速排序“快速排序”思想很简洁,整个排序过程只须要三步:(1)在数据集之中,选择一个元素作为”基准”(pivot)。(2)全部小于”基准”元素,都移到”基准”左边;全部大于”基准”元素,都移到”基准”右边。(3)对”基准”左边和右边两个子集,不断重复第一步和第二步,直到全部子集只剩下一个元素为止。9、统计字符串”aaaabbbccccddfgh”中字母个数或统计最多字母数。10、写一个function,去除字符串前后空格。(兼容全部阅读器)1、一次完好 事务是怎样一个过程?根本流程:a. 域名解析b. 发起TCP3次握手c. 建立TCP连接后发起 恳求d. 效劳器端响应 恳求,阅读器得到html代码e. 阅读器解析html代码,并恳求html代码中资源f. 阅读器对页面进展渲染呈现给用户2、对前端工程师这个职位你是怎么样理解?a. 前端是最贴近用户程序员,前端实力就是能让产品从 90分进化到 100 分,甚至更好b. 参加工程,快速高质量完成实现效果图,准确到1px;c. 与团队成员,UI设计,产品经理沟通;d. 做好页面构造,页面重构和用户体验;e. 处理hack,兼容、写出美丽代码格式;f. 针对效劳器优化、拥抱最新前端技术。第 12 页
限制150内