前端工程师常见的面试题
2017-08-09 20:31
330 查看
1、对WEB标准以及W3C的理解和认识?
标签闭合、标签小写、不乱嵌套、提高搜索机器人搜索几率使用外链css和js脚本,结构行为表现的分离
文件下载与页面速度更快,内容能被更多的用户所访问,内容能被更广泛的设备所访问
更少的代码和组价,容易维护,改版方便,不需要变动页面内容
提供打印版本而不需要复制内容、提高网站易用性。
2、xml和html有什么区别
HTML是一种基本的WEB网页设计语言,XHTML是一个基于XML的置标语言最主要的不同是:
XHTML元素必须被正确地嵌套
XHTML元素必须被关闭
标签名必须用小写
XHTML文档必须拥有根元素
3、doctype(文档类型)的作用是什么?你知道多少种文档类型?
作用是:此标签可以告知浏览器文档使用哪种HTML或XHTML规范此标签可声明三种DTD类型,分别表示严格版本、过渡版本以及基于框架的HTML文档
HTML4.01规定了三种文档类型:Strict、Transition以及Frameset
XHTML1.0 规定了三种XML文档类型:Strict、Transitional以及Frameset
Standards(标准)模式(也就是严格呈现模式)用于呈现遵循最新标准的网页,而Quirks(包容)模式(也就是松散呈现模式或者兼容模式)用于呈现为传统浏览器而设计的网页
4、行内元素有哪些?块级元素有哪些?CSS的盒模型
行内元素:span、a、Img、input、select、b块级元素:div、p、h1~h6、form、ul、li
CSS盒模型:border、padding、margin
5、CSS引入方式有哪些?link和@import的区别
CSS引入方式:内联式、行内式、外链式区别是:同时加载
前者无兼容性、后者CSS2.1以下的浏览器不支持
link支持使用JavaScript改变样式,后者不支持
6、CSS选择器有哪些?哪些属性可以继承?优先级算法如何计算?内联和important哪个优先级高?
CSS选择器:标签选择器、类选择器、ID选择器(组合选择器、相邻选择器(+))伪类选择器继承不如指定
优先级:标签选择器<类选择器<ID选择器
important优先级高
7、前端页面有哪三层构成,分别是什么?作用是什么?
结构层html、表现层css、行为层js8、CSS的基本语句构成是?
选择器{属性名:属性值;属性名:属性值;}9、你做的页面在哪些浏览器测试过?这些浏览器的内核是什么
IE(ie内核)、谷歌(webkit内核)、火狐(Gecko)、opera(Presto)10、写出几种IE6 BUG的解决方法
float引起的双边距bug:使用display使用float引起的3像素bug:使用display:inline
超链接hover点击之后失效:使用正确的书写顺序link visited hover active
IE z-inde问题:给父级添加position:relative
PNG透明:使用js代码改
min-height最小高度 !important解决
select在ie6下遮盖 使用iframe嵌套
为什么没有办法定义1px左右的宽度容器(IE6默认的行高造成的,使用over:hidden;zoom:0.09;line-height:1px;)
IE6不支持!important
11、img标签上title与alt属性的区别是什么?
alt当图片不显示时,用文字代替title当鼠标放在图片上时,显示文字说明
12、描述css reset的作用和用途
reset重置浏览器的css默认属性,浏览器的品种不同,样式不同,然后重置,让他们统一13、解析css sprites,如何使用
css精灵(又叫雪碧图),是把一堆小图片整合到一张大的图片上,减少服务器对图片的请求数量14、浏览器标准模式和怪异模式之间的区别是什么?
盒子模型、渲染模式不同使用window.top.document.compatMode可显示为什么模式
15、你如何对网站的文件和资源进行优化?期待的解决方案包括:
文件合并文件最小化/文件压缩
使用CDN托管
缓存的使用
16、请解释一下什么是"语义化HTML
语义化HTML就是:标题h1~h6,段落p,无序列表ul li,有序列表ol li,图片img,链接a等,对于搜索引擎的抓取有好处语义化的好处:
去掉或样式丢失的时候,能让页面呈现清晰的结构
屏幕阅读器(如果访客有视障)会完全根据你的标记来"读"你的网页
PDA、手机登设备可能无法像普通电脑的浏览器一样来渲染网页(通常是因为这些设备对CSS的支持较弱)
搜索引擎的爬虫也依赖于标记来确定上下文和各个关键字的权重
你的页面是否对爬虫容易理解非常重要,因为爬虫很大程度上会忽略用于表现的标记,而只注重语义化标记。
便于团队开发和维护
17、清除浮动的几种方式,各自的优缺点
使用空标签清除浮动clear:both(理论上能清除任何标签,,,增加无意义的标签)使用overflow:auto(空标签元素清除浮动而不是增加无意代码的弊端,使用zoom:1用于兼容IE)
使用after伪元素清除浮动(用于非IE浏览器)
18、请说出三种减少页面加载时间的方法。(加载时间指感知的时间或者实际加载时间)
优化图片图片格式的选择(GIF:提供的颜色较少,可用在一些对颜色要求不高的地方)
优化CSS(压缩合并css,如margin-top,margin-left...)
网址后加斜杠(如:www.campr.com/目录,会判断这个"目录是什么文件类型,或者是目录。")
标明高度和宽度(如果浏览器没有找到这两个参数,它需要一边下载图片,一边计算大小,如果图片很多,浏览器需要不断的调整页面,这不但影响速度,也影响浏览体验,当浏览器知道了高度和宽度参数后,即使图片暂时无法显示,页面上也会腾出图片的空位,然后继续加载后面的内容,从而使加载时间变快,浏览体验也更好)
减少http请求(合并文件,合并图片使用雪碧图)
19、讨论CSS hacks,条件引用或者其他
<!--[if IE6]--><![end if]-->_margin IE6
+margin IE7
margin:0 auto\9 所有IE
margin:\0 IE8
20、你用过媒体查询,或者针对移动端的布局/CSS吗?
@media screen and (min-width:400px) and (max-width:700px){......}@media handheld and (min-width:20em),screen and (min-width:20em){......}
媒体查询,就是响应式布局,响应式布局框架:bootstrap、PureCSS等
21、解释下原型继承的原理
当查找一个对象的属性时,JavaScript会向上遍历原型链,直到找到给定名称的属性为止(大多数JavaScript的实现用_proto_属性来表示一个对象的原型链)以下代码展示了JS引擎如何查找属性:
function getProperty(obj,prop){
if(obj.hasOwnProperty(prop)){
return obj[prop];
}else if(obj._proto_! == null){
return getProperty(obj._proto_,prop)
}else{
return undefined;
}
}
22、前端安全
CSRF:跨站请求伪造。攻击者盗用了你的身份,以你的名义发送恶意请求。他可以做到的事情包括:以你的名义发送邮件,发消息,盗取你的账号。甚至购买商品...造成的问题包括:个人隐私泄露以及财产安全。原理:
登录受信任的网站A,并且在本地生成cookie,在不登录A网站的情况下,访问危险网站B
常见类型:
使用get更新请求资源,容易在B使用img标签造成攻击
前端虽然改成了post请求,但是B网站通过iframe等手段同样造成了攻击
防御机制:
验证码:用户每次提交都需要在表单中填写图片上一个随机字符串
添加一个隐藏的输入框:包含token,服务端验证是否匹配
使用HTTP refer头部进行判断,如果不是业务域名发起的HTTP请求,直接过滤。
XSS它的全名:Cross-sitescripting,为了和CSS层叠样式表区分所以取名XSS是一种网站应用程序的安全漏洞攻击,是代码注入的一种。它允许恶意用户将代码注入到网页上,这类攻击通常包含了HTML以及用户端脚本语言。
23、CMD VS AMD
CommonJS是服务器端模块的规范,Node.js采用了这个规范根据CommonJS规范,一个单独的文件就是一个模块。每一个模块都是一个单独的作用域,也就是说,在该模块内部定义的变量,无法被其他模块读取,除非定义为globald对象的属性。
CommonJS规范加载模块是同步的,也就是说,只要加载完成,才能执行后面的操作。
AMD规范则是非同步加载模块,允许指定回调函数。
由于Node.js主要用于服务器编程,模块文件一般都已经存在于本地硬盘,所以加载起来比较快,不用考虑非同步加载的方式,所以CommonJS规范比较适用。
但是,如果是浏览器环境,要从服务器端加载模块,这时就必须采用非同步模式,因此浏览器一般采用AMD规范。
相关文章推荐
- 前端工程师面试题汇总--技术
- 常见前端面试题之HTML/CSS部分(二)
- Java高级工程师常见面试题
- 常见网页前端面试题集
- Web前端常见面试题
- 软件测试工程师常见面试题
- 常见软件测试工程师面试题
- 最新前端开发工程师面试题——HTML部分
- 2016-2017年最新前端工程师面试题
- 常见前端开发面试题
- 2017前端工程师面试题汇总
- 12个常见的前端面试题
- 常见的前端面试题(含答案)
- 最新前端开发工程师面试题——CSS部分
- 前端开发工程师面试题
- 应聘.net开发工程师常见的面试题(四)
- Java高级工程师常见面试题
- 前端工程师面试题汇总
- 校招算法工程师常见面试题及答案总结02——SVM
- 一道常被人轻视的web前端常见面试题(JS)