1楼:江淮一楠
前端面试的h5问题汇总:
1.html5 为什么只需要写 ?
答案解析:
html5不基于sgml,因此不需要对dtd进行引用,但是需要doctype来规范浏览器的行为(让浏览器按照他们应该的方式来运行)而html4.01基于sgml,所以需要对dtd进行引用,才能告知浏览器文档所使用的文档类型。
2、行内元素有哪些?块级元素有哪些? 空(void)元素有那些?
答案解析:
行内元素:a b span img input select strong
块级元素:div ul ol li dl dt dd h1 h2 h3 h4 p 等
空元素:
3、页面导入样式时,使用link和@import有什么区别?
答案解析:
1)link属于xhtml标签,而@import是css提供的;
2)页面被加载时,link会同时被加载,而@import引用的css会等到页面被加载完再加载;
3)@import只在ie5以上才能识别,而link是xhtml标签,无兼容问题;
4)link方式的样式的权重高于@import的权重。
4、html5有哪些新特性、移除了那些元素?如何处理html5新标签的浏览器兼容问题?
答案解析:
新特性,新增元素:
1)内容元素:article、footer、header、nav、section
2)表单控件:calendar、date、time、email、url、search
3)控件元素:webworker,websockt,geolocation
移除元素:
1)显现层元素:basefont,big,center,font,s,strike,tt,u
2)性能较差元素:frame,frameset,noframes
处理兼容问题有两种方式:
1)ie6/ie7/ie8支持通过document方法产生的标签,利用这一特性让这些浏览器支持html5新标签。
2)使用是html5shim框架
另外,doctype声明的方式是区分html和html5标志的一个重要因素,此外,还可以根据新增的结构,功能元素来加以区分。
5、如何区分 html 和 html5?
答案解析:
1)在文档类型声明上不同:
html是很长的一段**,很难记住,而html5却只有简简单单的声明,方便记忆。
2)在结构语义上不同:
html:没有体现结构语义化的标签,通常都是这样来命名的
,这样表示**的头部。
html5:在语义上却有很大的优势。提供了一些新的标签,比如:
6、简述一下你对html语义化的理解?
答案解析:
1)用正确的标签做正确的事情;
2)html语义化让页面的内容结构化,结构更清晰,便于对浏览器、搜索引擎解析;
3)即使在没有样式css情况下也以一种文档格式显示,并且是容易阅读的;
4)搜索引擎的爬虫也依赖于html标记来确定上下文和各个关键字的权重,利于seo;
5)使于都源**的人对**更容易将**分块,便于阅读维护理解。
7、html5的离线储存怎么使用,工作原理能不能解释一下?
答案解析:
localstorage 长期存储数据,浏览器关闭后数据不丢失;
sessionstorage 数据在浏览器关闭后自动删除。
8、iframe有那些缺点?
答案解析:
1)在网页中使用框架结构最大的弊病是搜索引擎的“蜘蛛”程序无法解读这种页面;
2)框架结构有时会让人感到迷惑,页面很混乱;
9、doctype作用? 严格模式与混杂模式如何区分?它们有何意义?
答案解析:
1)声明位于文档中的最前面,处于标签之前。告知浏览器的解析器,用什么文档类型规范来解析这个文档。
2)严格模式的排版和js运作模式是以该浏览器支持的最高标准运行。
3)在混杂模式中,页面以宽松的向后兼容的方式显示。模拟老式浏览器的行为以防止站点无法工作。
4)doctype不存在或格式不正确会导致文档以混杂模式呈现。
10、常见兼容性问题?
1)png24位的**在ie6浏览器上出现背景;
解决方案是:做成png8;
2)浏览器默认的 margin 和 padding 不同。
解决方案是:加一个全局的*来统一。
3)ie6双边距bug:块属性标签float后,又有横行的 margin 情况下,在 ie6 显示 margin 比设置的大。浮动ie产生的双倍距离 #box 这种情况下ie6会产生200px的距离。
解决方法:加上_display:inline,使浮动忽略
4)ie下,可以使用获取常规属性的方法来获取自定义属性,也可以使用getattribute()获取自定义属性; firefox下,只能使用getattribute()获取自定义属性。
解决方法:统一通过getattribute()获取自定义属性。
5)ie下,even对象有x,y属性,但是没有pagex,pagey属性,但是没有x,y属性;
解决方法:(条件注释)缺点是在ie浏览器下可能会增加额外的http请求数。
6)chrome中文界面下默认会将小于 12px 的文本强制按照 12px 显示
解决方法:可通过加入 css 属性 -webkt-text-size-adjust:none;解决
7)超链接访问过后 hover 样式就不出现了,被点击访问过的超链接样式不在具有 hover 和 active ;
解决方法:改变css属性的排列顺序:l-v-h-a: a:link a:visited a:hover a:active
11、如何实现浏览器内多个标签页之间的通信?
答案解析:
调用localst***e、cookies等本地存储方式
12、websocket如何兼容低浏览器?
答案解析:
adobe flash socket 、 activex htmlfile (ie) 、 基于 multipart 编码发送 xhr 、 基于长轮询的 xhr
13、支持html5新标签
答案解析:
1)ie8/ie7/ie6支持通过 document.createelement 方法产生的标签,可以利用这一特性让这些浏览器支持 html5 新标签,浏览器支持新标签后,还需要添加标签默认的样式;
2)当然最好的方式是直接使用成熟的框架、使用最多的是 html5shim 框架
如何成功的面试web前端开发
2楼:匿名用户
面试就像相亲,一看缘分,二看眼缘,三看是否能满足双方的要求。
推荐阅读前端开发面试经 ,从面试官角度谈面试。
如何成功的面试web前端开发,web前端开发
3楼:优就业王老师
要成为一名优秀的前端工
程师,最重要的莫过于对自己做的事要有激情。我们技能都不是从学校中或者从研讨会上学来的,因此前端工程师必须具备自学能 力。浏览器技术的变化可谓日新月异,所以也只有不断提升自己的技能才做得到与时俱进。
我虽然不能强迫谁必须多看博客、不断学习,但想应聘前端工程师的人恐 怕还是必须这么做的。
你怎么知道谁对这种工作有没有激情?实际上非常简单。我只问一个简单的问题:
“目前你对什么web技术最感兴趣?”这个问题永远不会过期,而且也几 乎不可能出错……除非你答不上来。就眼下来说,我希望你对这个问题给出的技术中包括websocket、html、webgl、客户端数据库,等等。
只有 对web开发充满激情的人,才会坚持不懈地学习新知识、掌握新技能;这些人才是我真正想要的。当然,我会让他们详细解释自己提到的技术,以保证他们不是随 口说了几个时髦的新词汇。
最后一点
计算机科学或者web设计方面的知识当然也有用,但那都是基本知识之外的东西。只要基本知识在那儿了,一切就都有了基础,想扩充知识面也不难。可 是,如果等到正式上班以后,还得从头学习基本技能,那种难度是不可同日而语的。
另外,高级前端工程师与一般工程师相比,肯定需要掌握更多的技能。而面试几 乎没有经验大学毕业生,同样也会有一套完全不同的程序。我在这篇文章里列出来的都是一些最基本的东西。
对于那些还没有多少面试经验的人,我总是喜欢告诉他们,面试完了只要问自己一个问题就行:你想以后跟这个人在一起共事吗?如果不管为什么,回答是不,那就是不。
如何面试前端工程师?
4楼:匿名用户
前端工程师没面试会问的问题如下:
1.你会什么插件
2.有什么成熟的作品
3.工作经验
4.面试过后可能会个你留作业限定时间,在你提交作业后通过初步评审再进行复试。
5.复试话会问到你的设计思路、实现过程,操作中遇到什么问题,你是怎么解决的,最终结果与你的预期值是否有差异,通过作业你有什么收获等。
6.然后再根据项目中的不足有针对性地提问测试,考察面试者的实际经验和解决问题的能力。解决实际问题的能力最重要。作业设计得越接近实际工作需要,同月可能得到企业面试官的认可。
5楼:匿名用户
前端工程师不一定需要懂设计方面。倘若有这等要求,前端工程师岂不是一项除其本身特征性工作外还包含用户界面设计、视觉设计、业务逻辑及交互动画设计师等工作的职称了么!
前端工程师,主要工作内容与用户界面的表现紧密联系,但均为在图形上或以其为基础通过某种实现方式去正确、准确呈现什么。之所以以“主要工作”修饰,是因为 node.js / io.
js 的出现与发展致使前端被引入服务器端性质的工作内容。
在能力方面:
对 html / css / javascript 具有专家级别的知识;
有较熟练使用 angularjs / ember.js / jquery 或者其它类库的经验;
较熟悉第三方组件(插件)生态环境及具体案例;
有较熟练使用 jade / swig / handlebars / mustache 或者其它模板引擎的经验;
有较熟练使用 sass 或者其它 css 预处理器的经验;
有较熟练使用 coffeescript 的经验;
对 css / javascript 设计模式有很好的认识及应用;
对常用数据结构和算法熟悉;
有使用 gruntjs / gulpjs 任务运行器的经验;
有使用 yeoman 生成器的经验;
有诸如 bower / volo / jspm 等前端静态资源包管理器使用经验;
熟悉本地及远程(真机)调试操作;
有 git 的使用经验;
意识驱动行为,所以:
有自己的技术信仰;
有渴望尝试新技术的强烈愿景及较强的主观学习、客观探索能力;
拥有令人难以置信的关注细节的精神;
在诸如 github、sitepoint 等这样的技术社区活动;
因为你不是一个人工作,并且要对一个产品付之责任心,所以:
有良好的编程风格和文档习惯;
对模块化开发及相关标准有很好的认识及应用;
有对网页标准和标准制定机构重要性较深刻的理解;
建站过程中考虑其它诸如ui、安全性、高性能、seo、可维护性以及技术因素等方面;
有跨浏览器(主:兼容性)、跨设备(主:响应式)开发并测试页面的经验;
对网格在web设计中的应用有深刻的理解,以及具备系统(有组织)地实现出来的能力;
能够独立工作并做出正确的抉择;
能够适应不断变化的更新 / 扩展 / 改版需求,同时处理多个项目;
能够提供准确的定时估计工作(适应准时交付管理法则);
有与服务器端程序开发人员协同工作的经验;
能够(熟练)阅读英文资料;
有一定的工作压力承受能力;
然后再为自己从长远打算及加分:
有 nodejs web / 服务器 / 客户端应用程序设计、开发、优化经验;
有 mangodb / redis 等no sql 数据库设计、实现、维护经验;
有使用 phonegap / apache cordova 进行移动应用开发经验;
有浏览器 addon 扩展(以扩展的形式添加一些为提高用户体验的附加功能)开发经验者;