js工程师面试题及答案.docx

上传人:b****8 文档编号:11336244 上传时间:2023-02-27 格式:DOCX 页数:11 大小:22.19KB
下载 相关 举报
js工程师面试题及答案.docx_第1页
第1页 / 共11页
js工程师面试题及答案.docx_第2页
第2页 / 共11页
js工程师面试题及答案.docx_第3页
第3页 / 共11页
js工程师面试题及答案.docx_第4页
第4页 / 共11页
js工程师面试题及答案.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

js工程师面试题及答案.docx

《js工程师面试题及答案.docx》由会员分享,可在线阅读,更多相关《js工程师面试题及答案.docx(11页珍藏版)》请在冰豆网上搜索。

js工程师面试题及答案.docx

js工程师面试题及答案

js工程师面试题及答案

  互联网行业的技术岗位java工程师,是很多的工作梦想,然而却在面试这一关无法到达要求,下面带来了js工程师面试题及答案,供大家参考。

  1.对WEB标准以及W3C的理解与认识标签闭合、标签小写、不乱嵌套、提高搜索机器人搜索几率、使用外链css和js脚本、构造行为表现的别离、文件下载与页面速度更快、内容能被更多的用户所访问、内容能被更广泛的设备所访问、更少的代码和组件,容易维护、改版方便,不需要变动页面内容、提供打印版本而不需要复制内容、提高网站易用性;

  2.xhtml和html有什么区别

  HTML是一种根本的WEB网页设计语言,XHTML是一个基于XML的置标语言最主要的不同:

  XHTML元素必须被正确地嵌套。

  XHTML元素必须被关闭。

标签名必须用小写字母。

  XHTML文档必须拥有根元素。

  3.Doctype?

严格模式与混杂模式-如何触发这两种模式,区分它们有何意义?

用于声明文档使用那种标准(html/Xhtml)一般为严格过度基于框架的html文档参加XMl声明可触发,解析方式更改为IE5.5拥有IE5.5的bug

  4.行内元素有哪些?

块级元素有哪些?

CSS的盒模型?

块级元素:

divph1h2h3h4formul行内元素:

abbrispaninputselectCss盒模型:

内容,border,margin,padding

  5.CSS引入的方式有哪些?

link和@import的区别是?

内联内嵌外链导入区别:

同时加载前者无兼容性,后者CSS2.1以下浏览器不支持Link支持使用javascript改变样式,后者不可。

  6.CSS选择符有哪些?

哪些属性可以继承?

优先级算法如何计算?

内联和important哪个优先级高?

标签选择符类选择符id选择符继承不如指定Id>class>标签选择后者优先级高

  7.前端页面有哪三层构成,分别是什么?

作用是什么?

构造层Html表示层CSS行为层js

  8.css的根本语句构成是?

选择器{属性1:

值1;属性2:

值2;……}

  9.你做的页面在哪些流览器测试过?

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

  Ie(Ie内核)火狐(Gecko)谷歌(webkit)opear(Presto)

  10.写出几种IE6BUG的解决方法

  1.双边距BUGfloat引起的使用display

  2.3像素问题使用float引起的使用dislpay:

inline-3px

  3.超链接hover点击后失效使用正确的书写顺序linkvisitedhoveractive

  4.Iez-index问题给父级添加position:

relative

  5.Png透明使用js代码改

  6.Min-height最小高度!

Important解决’

  7.select在ie6下遮盖使用iframe嵌套

  8.为什么没有方法定义1px左右的宽度容器(IE6默认的行高造成的,使用over:

hidden,zoom:

0.08line-height:

1px)

  11.标签上title与alt属性的区别是什么?

  Alt当图片不显示是用文字代表。

  Title为该属性提供信息

  12.描述cssreset的作用和用途。

  Reset重置浏览器的css默认属性浏览器的品种不同,样式不同,然后重置,让他们统一

  13.解释csssprites,如何使用。

  Css精灵把一堆小的图片整合到一张大的图片上,减轻效劳器对图片的请求数量

  14.浏览器标准模式和怪异模式之间的区别是什么?

盒子模型渲染模式的不同使用window.top.document.patMode可显示为什么模式

  15.你如何对网站的文件和资源进展优化?

期待的解决方案包括:

文件合并文件最小化/文件压缩使用CDN托管缓存的使用

  16.什么是语义化的HTML?

直观的认识标签对于搜索引擎的抓取有好处

  17.去除浮动的几种方式,各自的优缺点

  1.使用空标签去除浮动clear:

both(理论上能清楚任何标签,,,增加无意义的标签)

  2.使用overflow:

auto(空标签元素去除浮动而不得不增加无意代码的弊端,,使用zoom:

1用于兼容IE)

  3.是用afert伪元素去除浮动(用于非IE浏览器)

  Javascript

  1.javascript的typeof返回哪些数据类型

  Objectnumberfunctionbooleanunderfind

  2.例举3种强制类型转换和2种隐式类型转换?

强制(parseInt,parseFloat,number)隐式(==–===)

  3.split()join()的区别前者是切割成数组的形式,后者是将数组转换成字符串

  4.数组方法pop()push()unshift()shift()

  Push()尾部添加pop()尾部删除

  Unshift()头部添加shift()头部删除

  5.事件绑定和普通事件有什么区别

  6.IE和DOM事件流的区别

  1.执行顺序不一样、

  2.参数不一样

  3.事件加不加on

  4.this指向问题

  7.IE和标准下有哪些兼容性的写法

  Varev=ev||window.event

  document.documentElement.clientWidth||document.body.clientWidth

  Vartarget=ev.srcElement||ev.target

  8.ajax请求的时候get和post方式的区别一个在url后面一个放在虚拟载体里面有大小限制平安问题应用不同一个是论坛等只需要请求的,一个是类似修改密码的

  9.call和apply的区别

  Object.call(this,obj1,obj2,obj3)

  Object.apply(this,arguments)

  10.ajax请求时,如何解释json数据使用evalparse鉴于平安性考虑使用parse更靠谱

  11.b继承a的方法

  12.写一个获取非行间样式的函数

  functiongetStyle(obj,attr,value)

  {

  if(!

value)

  {

  if(obj.currentStyle)

  {

  returnobj.currentStyle(attr)

  }

  else

  {

  obj.getComputedStyle(attr,false)

  }

  }

  else

  {

  obj.style[attr]=value

  }

  }

  13.事件委托是什么让利用事件冒泡的原理,让自己的所触发的事件,让他的父元素代替执行!

  .webasily./?

p=78例子可见此链接

  14.闭包是什么,有什么特性,对页面有什么影响闭包就是能够读取其他函数内部变量的函数。

  blog.csdn./gaoshanwudi/article/details/7355794此链接可查看(问这个问题的不是一个公司)

  15.如何阻止事件冒泡和默认事件

  canceBubblereturnfalse

  16.添加删除替换插入到某个接点的方法

  obj.appendChidl()

  obj.innersetBefore

  obj.replaceChild

  obj.removeChild

  17.解释jsonp的原理,以及为什么不是真正的ajax动态创立script标签,回调函数

  Ajax是页面无刷新请求数据操作

  18.javascript的本地对象,内置对象和宿主对象本地对象为arrayobjregexp等可以new实例化内置对象为gloadMath等不可以实例化的宿主为浏览器自带的document,window等

  19.documentload和documentready的区别

  Document.onload是在构造和样式加载完才执行js

  Document.ready原生种没有这个方法,jquery中有$().ready(function)

  20.”==”和“===”的不同前者会自动转换类型后者不会

  21.javascript的同源策略一段脚本只能读取于同一的窗口和文档的属性,这里的同一指的是主机名、协议和端口号的组合

  22.编写一个数组去重的方法

  functionoSort(arr)

  {

  varresult={};

  varnewArr=[];

  for(vari=0;i

  {

  if(!

result[arr])

  {

  newArr.push(arr)

  result[arr]=1

  }

  }

  returnnewArr

  }

  重申一下,上述这些知识点都应该是你应该“想都不用想”的东西。

我一开始问的所有问题都是想摸清你对所有这些领域知识的掌握程度。

虽然上面列出的这些知识点并没有面面俱到,但我觉得你至少应该掌握这些,才有可能跟我坐到一间办公室里来。

  我非常赞同面试者问的问题越少越好。

反复问应聘者各种问题既不公平,也很无聊。

我在任何一次面试中,通常只问三个大问题,但每个问题又会涉及我所能想到的多个方面。

答复每个大问题一般要经过几个步骤,这样我就可以在每个步骤中穿插着问一些小问题。

比方说:

  现在有一个正显示着Yahoo!

股票价格的页面。

页面上有一个按钮,你可以单击它来刷新价格,但不会重新加载页面。

请你描述一下实现这个功能的过程,假设效劳器会负责准备好正确的股票价格数据。

  这个问题牵扯到一组我想要考察的根本知识点:

DOM构造、DOM操作、事件处理、XHR和JSON。

如果我要求你对换一种处理股票价格的方式,或者让你在页面中显示其他信息,就可以把更多的知识点包括进来。

对于经历比较丰富应聘者,我也可以自如地扩展要考察的知识范围,最简单像JOSN与XML的区别、平安问题、容量问题,等等。

  我还希望应聘者给出的任何解决方案中都不要使用库。

我想看到最原生态的代码,你就当页面中没有包含任何库。

你说你对哪个库了解多少多少,但我不能把关于库的知识作为评判能力的因素,因为库是会随时间变化的。

我需要的是真正理解库背后的机制,特别是能够徒手写出一个自己的库的人。

  做为一名前端工程师,最值得快乐的事莫过于解决同一个问题会有很多种不同的方法,而你要做的就是找出最适宜的方法来。

我在提问的时候,经常会在应聘者解释完一种方法后问他们还有没有第二种方法。

此时我会跟他们说,假设你的这个方法由于种种原因被否决了,那么你还能不能给出另一种方法。

这样做可以到达两个目的。

  首先,可以测试出他们是否在毫无意义地复述书本中的东西。

不能不成认,某些人确实有过目不忘的天赋,听他们在那里滔滔不绝地讲,你会觉得他们什么都明白。

可是,只要一跟这些人谈到怎么查找方案无效的原因,以及能否拿出一个新方案来,他们往往就傻眼了。

这时候,如果我听到“我不明白这个方案为什么不够好”之类的反问,心里立刻就明白我的问题已经超出了他们的能力范围,而他们只是想拿自己死记硬背的结论来蒙混过关。

  其次,可以测试出他们已经掌握的(还是那句话,“想都不用想”)浏览器技术知识。

如果他们对浏览器平台的核心知识有较好的理解,想出解决同一问题的不同方案根本没有那么难。

  对一名前端工程师来说,这绝对是最重要的能力。

前端工程师在工作中遇到本该如此却并未如此的难题(说你啦,IE6),应该说是一件很平常的事。

一个方案无效就无计可施的人,做不了前端工程师。

  考核应聘者解决问题能力的另一层原因,与我的个人喜好有关。

在搞清楚应聘者知道什么不知道什么之后,我就会想着问一个他们知识领域之外的问题。

这样做的目的,就是想看看他们怎样运用已有的知识解决新问题。

在解决问题的每一步,我也准备了一些提示,以防有人会卡壳打艮(在我面前15分钟一言不发,对我评价这个人毫无帮助)。

我真正感兴趣的,是他们能够从上一步前进到下一步。

我希望看到一个人就在我眼前学到新知识。

  注意:

所有问题都与浏览器技术相关。

我不相信出几道抽象的逻辑题,就能够考出某人解决Web技术问题的能力。

在我看来,这无异于让素描大师画肖像(或者让刘翔跟博尔特同场竞技),没有意义,也得不到任何有价值的信息。

  要成为一名优秀的前端工程师,最重要的莫过于对自己做的事要有激情。

我们技能都不是从学校中或者从研讨会上学来的,因此前端工程师必须具备自学能力。

浏览器技术的变化可谓日新月异,所以也只有不断提升自己的技能才做得到与时俱进。

我虽然不能强迫谁必须多看博客、不断学习,但想应聘前端工程师的人恐怕还是必须这么做的。

  你怎么知道谁对这种工作有没有激情?

实际上非常简单。

我只问一个简单的问题:

“目前你对什么Web技术最感兴趣?

”这个问题永远不会过期,而且也几乎不可能出错……除非你答不上来。

就眼下来说,我希望你对这个问题给出的技术中包括WebSocket、HTML、WebGL、客户端数据库,等等。

只有对Web开发充满激情的人,才会坚持不懈地学习新知识、掌握新技能;这些人才是我真正想要的。

当然,我会让他们详细解释自己提到的技术,以保证他们不是随口说了几个时髦的新词汇。

  计算机科学或者Web设计方面的知识当然也有用,但那都是根本知识之外的东西。

只要根本知识在那儿了,一切就都有了根底,想扩充知识面也不难。

可是,如果等到正式上班以后,还得从头学习根本技能,那种难度是不可同日而语的。

另外,高级前端工程师与一般工程师相比,肯定需要掌握更多的技能。

而面试几乎没有经历大学毕业生,同样也会有一套完全不同的程序。

我在这篇文章里列出来的都是一些最根本的东西。

  对于那些还没有多少面试经历的人,我总是喜欢告诉他们,面试完了只要问自己一个问题就行:

你想以后跟这个人在一起共事吗?

如果不管为什么,答复是不,那就是不。

  面试前端工程师对我来说是一件非常有意思的事,因为面试过程很大程度上也是自我提升的过程。

无论大公司还是小公司,之所以在如何招聘到真正有能力的前端工程师方面会遇到同样的问题,就是因为负责招聘的那些人不知道自己公司需要什么样的人,结果问问题时也问不到点子上。

经过这几年在行业里的摸索,我总结出了自己的一套很有效的面试前端工程的方法。

  有的应聘者说我不好对付,但留给他们这样的印象也并非我所愿。

我觉得之所以他们说我不好对付,主要是因为我问他们问题时问得太细了。

以前我曾专门写过一些东西,告诉应聘者怎么才能通过我的面试(Survivinganinterviewwithme)以及优秀的前面工程师应该具备什么样的素质(Whatmakesagoodfrontendengineer?

),而我的面试可以说完全是按照那两篇文章的标准进展的。

我不会问一些特别偏门的问题,也不认为出几道逻辑题就能考出人的真实水平。

我唯一的想法就是确定你能否胜任我们要招的这个职位。

为此,我需要简单地考察如下几个方面。

  DOM构造——两个节点之间可能存在哪些关系以及如何在节点之间任意移动。

  DOM操作——怎样添加、移除、移动、复制、创立和查找节点。

  事件——怎样使用事件以及IE和DOM事件模型之间存在哪些主要差异。

  XMLHttpRequest——这是什么、怎样完整地执行一次GET请求、怎样检测错误。

  严格模式与混杂模式——如何触发这两种模式,区分它们有何意义。

  盒模型——外边距、内边距和边框之间的关系,IE8以下版本的浏览器中的盒模型有什么不同。

  块级元素与行内元素——怎么用CSS控制它们、它们怎样影响周围的元素以及你觉得应该如何定义它们的样式。

  浮动元素——怎么使用它们、它们有什么问题以及怎么解决这些问题。

  HTML与XHTML——二者有什么区别,你觉得应该使用哪一个并说出理由。

  JSON——它是什么、为什么应该使用它、到底该怎么使用它,说出实现细节来。

  HTML&CSS:

  对Web标准的理解、浏览器内核差异、兼容性、hack、CSS根本功:

布局、盒子模型、选择器优先级及使用、HTML5、CSS3、移动端适应

  JavaScript:

  数据类型、面向对象、继承、闭包、插件、作用域、跨域、原型链、模块化、自定义事件、内存泄漏、事件机制、异步装载回调、模板引擎、Nodejs、JSON、ajax等。

  其他:

  、平安、正那么、优化、重构、响应式、移动端、团队协作、可维护、SEO、UED、架构、职业生涯

  1、DOM构造——两个节点之间可能存在哪些关系以及如何在节点之间任意移动。

  2、DOM操作——如何添加、移除、移动、复制、创立和查找节点等。

  3、事件——如何使用事件,以及IE和标准DOM事件模型之间存在的差异。

  4、XMLHttpRequest——这是什么、怎样完整地执行一次GET请求、怎样检测错误。

  5、严格模式与混杂模式——如何触发这两种模式,区分它们有何意义。

  6、盒模型——外边距、内边距和边框之间的关系,及IE8以下版本的浏览器中的盒模型

  7、块级元素与行内元素——怎么用CSS控制它们、以及如何合理的使用它们

  8、浮动元素——怎么使用它们、它们有什么问题以及怎么解决这些问题。

  9、HTML与XHTML——二者有什么区别,你觉得应该使用哪一个并说出理由。

  10、JSON——作用、用途、设计构造。

 

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

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

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

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