三、link 和@import 的区别是?
(1)link属于XHTML标签,而@import是CSS提供的;(2)页面被加载的时,link会同时被加载,而@import引用的CSS会等到页面被加载完再加载;(3)import只在IE5以上才能识别,而link是XHTML标签,无兼容问题;(4)link方式的样式的权重 高于@import的权重.四、浏览器的内核分别是什么? * IE浏览器的内核Trident、Mozilla的Gecko、Chrome的Blink(WebKit的分支)、Opera内核原为Presto,现为Blink; / 28
2015前端面试题2015-02
五、常见兼容性问题?
* png24位的图片在iE6浏览器上出现背景,解决方案是做成PNG8.* 浏览器默认的margin和padding不同。解决方案是加一个全局的*{margin:0;padding:0;}来统一。* IE6双边距bug:块属性标签float后,又有横行的margin情况下,在ie6显示margin比设置的大。浮动ie产生的双倍距离 #box{ float:left;width:10px;margin:0 0 0 100px;}
这种情况之下IE会产生20px的距离,解决方案是在float的标签样式控制中加入 ——_display:inline;将其转化为行内属性。(_这个符号只有ie6会识别)渐进识别的方式,从总体中逐渐排除局部。
首先,巧妙的使用“9”这一标记,将IE游览器从所有情况中分离出来。接着,再次使用“+”将IE8和IE7、IE6分离开来,这样IE8已经独立识别。
css
.bb{
background-color:#f1ee18;/*所有识别*/
.background-color:#00deff9;/*IE6、7、8识别*/
+background-color:#a200ff;/*IE6、7识别*/
_background-color:#1e0bd1;/*IE6识别*/
}
* IE下,可以使用获取常规属性的方法来获取自定义属性,也可以使用getAttribute()获取自定义属性;Firefox下,只能使用getAttribute()获取自定义属性.解决方法:统一通过getAttribute()获取自定义属性.* IE下,even对象有x,y属性,但是没有pageX,pageY属性;Firefox下,event对象有pageX,pageY属性,但是没有x,y属性.* 解决方法:(条件注释)缺点是在IE浏览器下可能会增加额外的HTTP请求数。/ 28
2015前端面试题
2015-02 * Chrome 中文界面下默认会将小于 12px 的文本强制按照 12px 显示, 可通过加入 CSS 属性-webkit-text-size-adjust: none;解决.超链接访问过后hover样式就不出现了 被点击访问过的超链接样式不在具有hover和active了解决方法是改变CSS属性的排列顺序:L-V-H-A : a:link {} a:visited {} a:hover {} a:active {}
六、html5有哪些新特性、移除了那些元素?如何处理HTML5新标签的浏览器兼容问题?如何区分 HTML 和 HTML5?
* HTML5 现在已经不是 SGML 的子集,主要是关于图像,位置,存储,多任务等功能的增加。* 绘画 canvas
用于媒介回放的 video 和 audio 元素
本地离线存储 localStorage 长期存储数据,浏览器关闭后数据不丢失;
sessionStorage 的数据在浏览器关闭后自动删除
语意化更好的内容元素,比如 article、footer、header、nav、section
表单控件,calendar、date、time、email、url、search
新的技术webworker, websockt, Geolocation * 移除的元素-纯表现的元素:basefont,big,center,font, s,strike,tt,u; 对可用性产生负面影响的元素:frame,frameset,noframes;
七、支持HTML5新标签:
* IE8/IE7/IE6支持通过document.createElement方法产生的标签,可以利用这一特性让这些浏览器支持HTML5新标签,浏览器支持新标签后,还需要添加标签默认的样式:
* 当然最好的方式是直接使用成熟的框架、使用最多的是html5shim框架
八、如何区分: DOCTYPE声明新增的结构元素功能元素,语义化的理解?
用正确的标签做正确的事情!
html语义化就是让页面的内容结构化,便于对浏览器、搜索引擎解析; 在没有样式CCS情况下也以一种文档格式显示,并且是容易阅读的。搜索引擎的爬虫依赖于标记来确定上下文和各个关键字的权重,利于 SEO。使阅读源代码的人对网站更容易将网站分块,便于阅读维护理解。
九、HTML5的离线储存?
localStorage
长期存储数据,浏览器关闭后数据不丢失; sessionStorage 数据在浏览器关闭后自动删除。
十、(写)描述一段语义的html代码吧。
(HTML5中新增加的很多标签(如:、
< div id=“header”> < h1>标题< /h1> < h2>专注Web前端技术< /h2> < /div>
十一、iframe有那些缺点?
*iframe会阻塞主页面的Onload事件;
*iframe和主页面共享连接池,而浏览器对相同域的连接有限制,所以会影响页面的并行加载。使用iframe之前需要考虑这两个缺点。如果需要使用iframe,最好是通过javascript 动态给iframe添加src属性值,这样可以可以绕开以上两个问题。/ 28
2015前端面试题
2015-02
十二、请描述一下 cookies,sessionStorage 和 localStorage 的区别?
cookie在浏览器和服务器间来回传递。sessionStorage和localStorage不会 sessionStorage和localStorage的存储空间更大; sessionStorage和localStorage有更多丰富易用的接口; sessionStorage和localStorage各自独立的存储空间;
十三、如何实现浏览器内多个标签页之间的通信?(阿里)调用localstorge、cookies等本地存储方式
十四、webSocket如何兼容低浏览器?(阿里)Adobe Flash Socket、ActiveX HTMLFile(IE)、基于 multipart 编码发送 XHR、7 / 28
基于长轮询的 XHR
2015前端面试题2015-02
CSS
一、介绍一下CSS的盒子模型?
(1)有两种,IE 盒子模型、标准 W3C 盒子模型;IE的content部分包含了 border 和 pading;(2)盒模型: 内容(content)、填充(padding)、边界(margin)、边框(border).二、CSS 选择符有哪些?哪些属性可以继承?优先级算法如何计算? CSS3新增伪类有那些?
*
1.id选择器(# myid)
2.类选择器(.myclassname)
3.标签选择器(div, h1, p)
4.相邻选择器(h1 + p)
5.子选择器(ul > li)
6.后代选择器(li a)
7.通配符选择器(*)
8.属性选择器(a[rel = “external”])
9.伪类选择器(a: hover, li: nth-child)
*
可继承的样式: font-size font-family color, UL LI DL DD DT;*
不可继承的样式:border padding margin width height;*
优先级就近原则,同权重情况下样式定义最近者为准;*
载入样式以最后载入的定位为准;/ 28
2015前端面试题
2015-02 优先级为:
!important > id > class > tag
important 比 内联优先级高
三、CSS3新增伪类举例:
p:first-of-type 选择属于其父元素的首个
元素的每个
元素。p:last-of-type 选择属于其父元素的最后
元素的每个
元素。p:only-of-type 选择属于其父元素唯一的
元素的每个
元素。p:only-child
选择属于其父元素的唯一子元素的每个
元素。p:nth-child(2)选择属于其父元素的第二个子元素的每个
元素。:enabled :disabled 控制表单控件的禁用状态。:checked
单选框或复选框被选中。
四、如何居中div?如何居中一个浮动元素?
给div设置一个宽度,然后添加margin:0 auto属性 div{width:200px;margin:0 auto;}
五、居中一个浮动元素
确定容器的宽高 宽500 高 300 的层
设置层的外边距
.div { Width:500px;height:300px;//高度可以不设
Margin:-150px 0 0-250px;
position:relative;相对定位
background-color:pink;//方便看效果 / 28
2015前端面试题2015-02
left:50%;top:50%;}
六、列出display的值,说明他们的作用。position的值,relative和absolute定位原点是?
1.block 象块类型元素一样显示。
none 缺省值。象行内元素类型一样显示。
inline-block 象行内元素一样显示,但其内容象块类型元素一样显示。
list-item 象块类型元素一样显示,并添加样式列表标记。
2.*absolute 生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。*fixed(老IE不支持)生成绝对定位的元素,相对于浏览器窗口进行定位。*relative生成相对定位的元素,相对于其正常位置进行定位。* static 默认值。没有定位,元素出现在正常的流中 *(忽略 top, bottom, left, right z-index 声明)* inherit 规定从父元素继承 position 属性的值。
七、CSS3有哪些新特性?
CSS3实现圆角(border-radius:8px),阴影(box-shadow:10px),对文字加特效(text-shadow、),线性渐变(gradient),旋转(transform)
transform:rotate(9deg)scale(0.85,0.90)translate(0px,-30px)skew(-9deg,0deg);//旋转,缩放,定位,倾斜
增加了更多的CSS选择器
多背景 rgba八、九、一个满屏 品 字布局 如何设计? 经常遇到的CSS的兼容性有哪些?原因,解决方法是什么? / 28
2015前端面试题
2015-02
十、为什么要初始化CSS样式。
因为浏览器的兼容问题,不同浏览器对有些标签的默认值是不同的,如果没对CSS初始化往往会出现浏览器之间的页面显示差异。
当然,初始化样式会对SEO有一定的影响,但鱼和熊掌不可兼得,但力求影响最小的情况下初始化。*最简单的初始化方法就是: * {padding: 0;margin: 0;}(不建议)淘宝的样式初始化:
body, h1, h2, h3, h4, h5, h6, hr, p, blockquote, dl, dt, dd, ul, ol, li, pre, form, fieldset, legend, button, input, textarea, th, td { margin:0;padding:0;} body, button, input, select, textarea { font:12px/1.5tahoma, arial, 5b8b4f53;} h1, h2, h3, h4, h5, h6{ font-size:100%;} address, cite, dfn, em, var { font-style:normal;} code, kbd, pre, samp { font-family:couriernew, courier, monospace;} small{ font-size:12px;} ul, ol { list-style:none;} a { text-decoration:none;} a:hover { text-decoration:underline;} sup { vertical-align:text-top;} sub{ vertical-align:text-bottom;} legend { color:#000;} fieldset, img { border:0;} button, input, select, textarea { font-size:100%;} table { border-collapse:collapse;border-spacing:0;} / 28
2015前端面试题2015-02
十一、absolute的containing block计算方式跟正常流有什么不同?
十二、position跟display、margin collapse、overflow、float这些特性相互叠加后会怎么样?
十三、对BFC规范的理解?
(W3C CSS 2.1 规范中的一个概念,它决定了元素如何对其内容进行定位,以及与其他元素的关 系和相互作用。)
十四、css定义的权重
以下是权重的规则:标签的权重为1,class的权重为10,id的权重为100,以下例子是演示各种定义的权重值: /*权重为1*/ div{} /*权重为10*/.class1{} /*权重为100*/ #id1{} /*权重为100+1=101*/ #id1 div{} /*权重为10+1=11*/.class1 div{} /*权重为10+10+1=21*/.class1.class2 div{}
如果权重相同,则最后定义的样式会起作用,但是应该避免这种情况出现 / 28
2015前端面试题
2015-02
十五、解释下浮动和它的工作原理?清除浮动的技巧
十六、用过媒体查询,针对移动端的布局吗?
十七、使用 CSS 预处理器吗?喜欢那个?
SASS
十八、如果需要手动写动画,你认为最小时间间隔是多久,为什么?(阿里)
多数显示器默认频率是60Hz,即1秒刷新60次,所以理论上最小间隔为1/60*1000ms = 16.7ms
十九、display:inline-block 什么时候会显示间隙?(携程)移除空格、使用margin负值、使用font-size:0、letter-spacing、word-spacing / 28
2015前端面试题2015-02
JavaScript一、二、JavaScript原型,原型链 ? 有什么特点? eval是做什么的?
它的功能是把对应的字符串解析成JS代码并运行;应该避免使用eval,不安全,非常耗性能(2次,一次解析成js语句,一次执行)。
三、四、null,undefined 的区别? 写一个通用的事件侦听器函数。
// event(事件)工具集,来源:github.com/markyun
markyun.Event = {
// 页面加载完成后
readyEvent : function(fn){
if(fn==null){
fn=document;
}
var oldonload = window.onload;
if(typeof window.onload!= 'function'){
window.onload = fn;
} else {
window.onload = function(){ / 28
2015前端面试题
2015-02
oldonload();
fn();
};
}
},// 视能力分别使用dom0||dom2||IE方式 来绑定事件
// 参数: 操作的元素,事件名称 ,事件处理程序
addEvent : function(element, type, handler){
if(element.addEventListener){
//事件类型、需要执行的函数、是否捕捉
element.addEventListener(type, handler, false);
} else if(element.attachEvent){
element.attachEvent('on' + type, function(){
handler.call(element);
});
} else {
element['on' + type] = handler;
}
},// 移除事件
removeEvent : function(element, type, handler){
if(element.removeEnentListener){ / 28
2015前端面试题2015-02
element.removeEnentListener(type, handler, false);
} else if(element.datachEvent){
element.detachEvent('on' + type, handler);
} else {
element['on' + type] = null;
}
},// 阻止事件(主要是事件冒泡,因为IE不支持事件捕获)
stopPropagation : function(ev){
if(ev.stopPropagation){
ev.stopPropagation();
} else {
ev.cancelBubble = true;
}
},// 取消事件的默认行为
preventDefault : function(event){
if(event.preventDefault){
event.preventDefault();
} else {
event.returnValue = false;
} / 28
2015前端面试题
2015-02
},// 获取事件目标
getTarget : function(event){
return event.target || event.srcElement;
},// 获取event对象的引用,取到事件的所有信息,确保随时能使用event;
getEvent : function(e){
var ev = e || window.event;
if(!ev){
var c = this.getEvent.caller;
while(c){
ev = c.arguments[0];
if(ev && Event == ev.constructor){
break;
}
c = c.caller;
}
}
return ev;
}
};
五、Node.js的适用场景? / 28
2015前端面试题2015-02 高并发、聊天、实时消息推送
六、介绍js的基本数据类型。
number,string,boolean,object,undefined
七、Javascript如何实现继承?
通过原型和构造器
八、[“1”, “2”, “3”].map(parseInt)答案是多少?
[1, NaN, NaN] 因为 parseInt 需要两个参数(val, radix),其中 radix 表示解析时用的基数。map 传了 3 个(element, index, array),对应的 radix 不合法导致解析失败。
九、如何创建一个对象?(画出此对象的内存图)
function Person(name, age){
this.name = name;
this.age = age;
this.sing = function(){ alert(this.name)}
}
十、谈谈This对象的理解。
this是js的一个关键字,随着函数使用场合不同,this的值会发生变化。但是有一个总原则,那就是this指的是调用函数的那个对象。this一般情况下:是全局对象Global。作为方法调用,那么this就是指这个对象
十一、事件是?IE与火狐的事件机制有什么区别? 如何阻止冒泡?
1.我们在网页中的某个操作(有的操作对应多个事件)。例如:当我们点击一个按钮就会产生一个事件。是可以被 JavaScript 侦测到的行为。
2.事件处理机制:IE是事件冒泡、火狐是 事件捕获; / 28
2015前端面试题
2015-02 3.ev.stopPropagation();
十二、什么是闭包(closure),为什么要用它?
执行say667()后,say667()闭包内部变量会存在,而闭包内部函数的内部变量不会存在.使得Javascript的垃圾回收机制GC不会收回say667()所占用的资源,因为say667()的内部函数的执行需要依赖say667()中的变量。这是对闭包作用的非常直白的描述.function say667(){
// Local variable that ends up within closure
var num = 666;
var sayAlert = function(){ alert(num);}
num++;
return sayAlert;} var sayAlert = say667();sayAlert()//执行结果应该弹出的667
十三、“use strict”;是什么意思 ? 使用它的好处和坏处分别是什么?
十四、如何判断一个对象是否属于某个类?
使用instanceof(待完善)
if(a instanceof Person){
alert('yes');
}
十五、new操作符具体干了什么呢? / 28
2015前端面试题2015-02
1、创建一个空对象,并且 this 变量引用该对象,同时还继承了该函数的原型。
2、属性和方法被加入到 this 引用的对象中。
3、新创建的对象由 this 所引用,并且最后隐式的返回 this。
var obj = {};obj.__proto__ = Base.prototype;Base.call(obj);
十六、Javascript中,有一个函数,执行时对象查找时,永远不会去查找原型,这个函数是?
hasOwnProperty
十七、JSON 的了解?
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。它是基于JavaScript的一个子集。数据格式简单, 易于读写, 占用带宽小 {'age':'12', 'name':'back'}
十八、js延迟加载的方式有哪些?
defer和async、动态创建DOM方式(用得最多)、按需异步载入js
十九、ajax 是什么?
二十、同步和异步的区别? 二
十一、如何解决跨域问题? jsonp、iframe、window.name、window.postMessage、服务器上设置代理页面
二十二、模块化怎么做?立即执行函数,不暴露私有成员 / 28
2015前端面试题
2015-02
var module1 =(function(){
var _count = 0;
var m1 = function(){
//...};
var m2 = function(){
//...};
return {
m1 : m1,m2 : m2
};
})();
二十三、AMD(Modules/Asynchronous-Definition)、CMD(Common Module Definition)规范区别?
AMD 是 RequireJS 在推广过程中对模块定义的规范化产出。CMD 是 SeaJS 在推广过程中对模块定义的规范化产出。
对于依赖的模块,AMD 是提前执行,CMD 是延迟执行。不过 RequireJS 从 2.0 开始,也改成可以延迟执行(根据写法不同,处理方式不同)。CMD 推崇 as lazy as possible.CMD 推崇依赖就近,AMD 推崇依赖前置 / 28
2015前端面试题2015-02 二
十四、异步加载的方式有哪些?
(1)defer,只支持IE
(2)async:
(3)创建script,插入到DOM中,加载完毕后callBack 二
十五、documen.write和 innerHTML的区别
document.write只能重绘整个页面 innerHTML可以重绘页面的一部分
二十六、.call()和.apply()的区别?
例子中用 add 来替换 sub,add.call(sub,3,1)== add(3,1),所以运行结果为:alert(4);
注意:js 中的函数其实是对象,函数名是对 Function 对象的引用。
function add(a,b)
{
alert(a+b);
}
function sub(a,b)
{
alert(a-b);
}
add.call(sub,3,1);
二十七、Jquery与jQuery UI 有啥区别?
*jQuery是一个js库,主要提供的功能是选择器,属性修改和事件绑定等等。/ 28
2015前端面试题
2015-02 *jQuery UI则是在jQuery的基础上,利用jQuery的扩展性,设计的插件。
提供了一些常用的界面元素,诸如对话框、拖动行为、改变大小行为等等
二十八、JQuery的源码看过吗?能不能简单说一下它的实现原理? 二
十九、jquery 中如何将数组转化为json字符串,然后再转化回来?
jQuery中没有提供这个功能,所以你需要先编写两个jQuery的扩展:
$.fn.stringifyArray = function(array){
return JSON.stringify(array)
}
$.fn.parseArray = function(array){
return JSON.parse(array)
}
然后调用:
$(“").stringifyArray(array)三
十、针对 jQuery 的优化方法?
*基于Class的选择性的性能相对于Id选择器开销很大,因为需遍历所有DOM元素。*频繁操作的DOM,先缓存起来再操作。用Jquery的链式调用更好。
比如:var str=$(”a“).attr(”href");*for(var i = size;i < arr.length;i++){} for 循环每一次循环都查找了数组(arr)的.length 属性,在开始循环的时候设置一个变量来存储这个数字,可以让循环跑得更快:
for(var i = size, length = arr.length;i < length;i++){} / 28
2015前端面试题2015-02 三
十一、JavaScript中的作用域与变量声明提升? 三
十二、如何编写高性能的Javascript? 三
十三、那些操作会造成内存泄漏?
内存泄漏指任何对象在您不再拥有或需要它之后仍然存在。
垃圾回收器定期扫描对象,并计算引用了每个对象的其他对象的数量。如果一个对象的引用数量为 0(没有其他对象引用过该对象),或对该对象的惟一引用是循环的,那么该对象的内存即可回收。setTimeout 的第一个参数使用字符串而非函数的话,会引发内存泄漏。
闭包、控制台日志、循环(在两个对象彼此引用且彼此保留时,就会产生一个循环)
三
十四、JQuery一个对象可以同时绑定多个事件,这是如何实现的? 三
十五、如何判断当前脚本运行在浏览器还是node环境中?(阿里)
通过判断Global对象是否为window,如果不为window,当前脚本没有运行在浏览器中
三
十六、对Node的优点和缺点提出了自己的看法?
*(优点)因为Node是基于事件驱动和无阻塞的,所以非常适合处理并发请求,因此构建在Node上的代理服务器相比其他技术实现(如Ruby)的服务器表现要好得多。
此外,与Node代理服务器交互的客户端代码是由javascript语言编写的,因此客户端和服务器端都用同一种语言编写,这是非常美妙的事情。
*(缺点)Node是一个相对新的开源项目,所以不太稳定,它总是一直在变,而且缺少足够多的第三方库支持。看起来,就像是Ruby/Rails当年的样子。/ 28
2015前端面试题
2015-02
其它问题
一、你有哪些性能优化的方法?
(看雅虎14条性能优化原则)。
(1)减少http请求次数:CSS Sprites, JS、CSS源码压缩、图片大小控制合适;网页Gzip,CDN托管,data缓存,图片服务器。
(2)前端模板 JS+数据,减少由于HTML标签导致的带宽浪费,前端用变量保存AJAX请求结果,每次操作本地变量,不用请求,减少请求次数
(3)用innerHTML代替DOM操作,减少DOM操作次数,优化javascript性能。
(4)当需要设置的样式很多时设置className而不是直接操作style。
(5)少用全局变量、缓存DOM节点查找的结果。减少IO读取操作。
(6)避免使用CSS Expression(css表达式)又称Dynamic properties(动态属性)。
(7)图片预加载,将样式表放在顶部,将脚本放在底部
加上时间戳。
(8)避免在页面的主体布局中使用table,table要等其中的内容完全下载之后才会显示出来,显示比div+css布局慢。
二、http状态码有那些?分别代表是什么意思?
100-199 用于指定客户端应相应的某些动作。200-299 用于表示请求成功。
300-399 用于已经移动的文件并且常被包含在定位头信息中指定新的地址信息。400-499 用于指出客户端的错误。
400
语义有误,当前请求无法被服务器理解。401
当前请求需要用户验证 / 28
2015前端面试题2015-02 403 服务器已经理解请求,但是拒绝执行它。500-599 用于支持服务器错误。503 – 服务不可用三、一个页面从输入 URL 到页面加载显示完成,这个过程中都发生了什么?(流程说的越详细越好)
查找浏览器缓存
DNS解析、查找该域名对应的IP地址、重定向(301)、发出第二个GET请求
进行HTTP协议会话
客户端发送报头(请求报头)
服务器回馈报头(响应报头)
html文档开始下载
文档树建立,根据标记请求所需指定MIME类型的文件
文件显示
[
浏览器这边做的工作大致分为以下几步:
加载:根据请求的URL进行域名解析,向服务器发起请求,接收文件(HTML、JS、CSS、图象等)。
解析:对加载到的资源(HTML、JS、CSS等)进行语法解析,建议相应的内部数据结构(比如HTML的DOM树,JS的(对象)属性表,CSS的样式规则等等)
}
四、平时如何管理你的项目?
先期团队必须确定好全局样式(globe.css),编码模式(utf-8)等;
编写习惯必须一致(例如都是采用继承式的写法,单样式都写成一行); / 28
2015前端面试题
2015-02
标注样式编写人,各模块都及时标注(标注关键样式调用的地方);
页面进行标注(例如 页面 模块 开始和结束);
CSS跟HTML 分文件夹并行存放,命名都得统一(例如style.css);
JS 分文件夹存放 命名以该JS功能为准的英文翻译。
图片采用整合的 images.png png8 格式文件使用 尽量整合在一起使用方便将来的管理
五、说说最近最流行的一些东西吧?常去哪些网站?
Node.js、Mongodb、npm、MVVM、MEAN、three.js
六、移动端(Android IOS)怎么做好用户体验?
清晰的视觉纵线、信息的分组、极致的减法、利用选择代替输入、标签及文字的排布方式、依靠明文确认密码、合理的键盘利用、七、想问公司的问题?
目前关注哪些最新的Web前端技术(未来的发展方向)?
前端团队如何工作的(实现一个产品的流程)?
公司的薪资结构是什么样子的?
八、优质网站推荐
极客标签: http://www.xiexiebang.com/ 码农周刊: http://weekly.manong.io/issues/ 前端周刊: http://www.xiexiebang.com/issues 极客头条: http://geek.csdn.net/ Startup News:http://news.dbanotes.net/ / 28
2015前端面试题2015-02 Hacker News: https://news.ycombinator.com/news InfoQ: http://www.xiexiebang.com/ w3cplus: http://www.xiexiebang.com/ Stack Overflow: http://stackoverflow.com/ Atp: http://atp-posts.b0.upaiyun.com/posts/ / 28
想要应聘前端开发的求职者,要做好完成面试题的准备。下面是由小编分享的前端开发面试题及答案,希望对你有用。
前端开发面试题及答案
1、对Web标准以及W3C的理解与认识?
答:标签闭合、标签小写、不乱嵌套、提高搜索机器人搜索几率、使用外链CSS和JS脚本、结构行为表现的分离、文件下载与页面速度更快、内容能被更多的用户所访问、内容能被更广泛的设备所访问、更少的代码和组件、容易维护、改版方便,不需要变动页面内容、提供打印版本而水需要复制内容、提高网站易用性。
2、XHTML和HTML有什么区别?
答:HTML是一种基本的WEB网页设计语言,XHTML是一个基于XML的置标语言 最主要的不同:
XHTML元素必须被正确地嵌套;
XHTML元素必须被关闭;
标签名必须用小写字母;
XHTML文档必须拥有根元素。
3、Doctype?严格模式与混杂模式-如何触发这两种模式,区分它们有何意义? 答:Doctype用于声明文档使用哪种规范(HTML/XHTML)
该标签可声明三种DTD类型,分别为严格版本、过度版本以及基于框架的HTML文档。
加入XML声明可触发,解析方式更改为IE5.5拥有IE5.5的bug。
4、行内元素有哪些?块级元素有哪些?CSS的盒模型?
答:行内元素:a b br i span input select
块级元素:div p h1 h2 h3 h4 form ul
CSS盒模型:内容,border margin padding5、CSS引入的方式有哪些?link和@import的区别是?
答:方式:内联 内嵌 外链 导入
区别:同时加载
前者无兼容性,后者CSS2.1以下浏览器不支持
Link支持使用javascript 改变样式,后者不可。
6.CSS选择符有哪些?哪些属性可以继承?优先级算法如何计算?内联和important哪个优先级高?
答:标签选择符、类选择符、id选择符
继承不如指定 id>class>标签选择
后者优先级高
7、前端页面有哪三层构成,分别是什么?作用是什么?
答:结构层HTML 表示层CSS 行为层JS8、你做的页面在哪些浏览器测试过?这些浏览器的内核分别是什么? 答:Ie(Ie内核)
火狐(Gecko)
谷歌(webkit)
opear(Presto)
9、img标签上title与 alt属性的区别是什么?
答:Alt当图片不显示时,用文字代表
Title为该属性提供信息。
10、描述CSS Reset的作用和用途
答:Reset重置浏览器的CSS默认属性 浏览器的品种不同,样式不同,然后重
置,让他们统一。
11、http状态码有那些?分别代表是什么意思?
100-199 用于指定客户端应响应的某些动作。
200-299 用于表示请求成功。
300-399 用于已经移动的文件并且常被包含在定位头信息中指定新的地址信息。400-499 用于指出客户端的错误。
400 语义有误,当前请求无法被服务器理解。
401 当前请求需要用户验证
403 服务器已经理解请求,但是拒绝执行它。
500-599 用于支持服务器错误。
503 – 服务不可用
13.解释css sprites,如何使用。
Css 精灵 把一堆小的图片整合到一张大的图片上,减轻服务器对图片的请求数量
14.浏览器标准模式和怪异模式之间的区别是什么?
盒子模型 渲染模式的不同
使用 window.top.document.compatMode 可显示为什么模式
15.你如何对网站的文件和资源进行优化?期待的解决方案包括:
文件合并
文件最小化/文件压缩
使用CDN托管
缓存的使用
16.什么是语义化的HTML?
直观的认识标签 对于搜索引擎的抓取有好处
17.清除浮动的几种方式,各自的优缺点
1.使用空标签清除浮动 clear:both(理论上能清楚任何标签,增加无意义的标签)
2.使用overflow:auto(空标签元素清除浮动而不得不增加无意代码的弊端,使用zoom:1用于兼容IE)
3.是用afert伪元素清除浮动(用于非IE浏览器)
18.css hack
_marging IE 6
+margin IE 7
Marging:0 auto 9 所有Ie
Margin IE 8
前端开发面试题之Javascript部分
1.javascript的typeof返回哪些数据类型
Object number function boolean underfind
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和标准下有哪些兼容性的写法
Var ev = ev || window.event
document.documentElement.clientWidth || document.body.clientWidth
Var target = 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数据
使用eval parse 鉴于安全性考虑 使用parse更靠谱
11.b继承a的方法
12.JavaScript this指针、闭包、作用域
13.事件委托是什么
让利用事件冒泡的原理,让自己的所触发的事件,让他的父元素代替执行!
14.闭包是什么,有什么特性,对页面有什么影响
闭包就是能够读取其他函数内部变量的函数。
15.如何阻止事件冒泡和默认事件
canceBubble return false
16.添加 删除 替换 插入到某个接点的方法
obj.appendChidl()
obj.innersetBefore
obj.replaceChild
obj.removeChild
17.解释jsonp的原理,以及为什么不是真正的ajax
动态创建script标签,回调函数
Ajax是页面无刷新请求数据操作
18.javascript的本地对象,内置对象和宿主对象
本地对象为array obj regexp等可以new实例化
内置对象为gload Math 等不可以实例化的宿主为浏览器自带的document,window 等
19.document load 和document ready的区别
Document.onload 是在结构和样式加载完才执行js
Document.ready原生种没有这个方法,jquery中有 $().ready(function)
20.”==”和“===”的不同
前者会自动转换类型
后者不会
21.javascript的同源策略
一段脚本只能读取来自于同一来源的窗口和文档的属性,这里的同一来源指的是主机名、协议和端口号的组合
1.自我评价一下HTML/CSS/JS的掌握情况
2.简述HTML经常使用的标签和作用。
Div/a/p/span/li/ul/ol/table/tr/td
3.你认为最常遇到的兼容Bug有哪些?有哪些问题是你认为解决起来最麻烦的?
IE6 PNG
IE6 Fixed
4.块级元素和行内元素都有哪些? 行内元素有哪些特点?
5.介绍所知道的CSS hack技巧(如:_,*,+,9,!important 之类)
6.CSS定位方式有哪些?position属性的值有哪些?他们之间的区别是什么?
在CSS中关于定位的内容是:position:relative | absolute | static | fixed
static 没有特别的设定,遵循基本的定位规定,不能通过z-index进行层次分级。 relative 不脱离文档流,参考自身静态位置通过 top,bottom,left,right 定位,并且可以通过z-index进行层次分级。
absolute 脱离文档流,通过 top,bottom,left,right 定位。选53D6其最近的父级定位元素,当父级 position 为 static 时,absolute元素将以body坐标原点进行定位,可以通过z-index进行层次分级。
fixed 固定定位,这里他所固定的对像是可视窗口而并非是body或是父级元素。可通过z-index进行层次分级。
7.函数的几种定义方法
function a(){},var a = function(){}
8.对象的定义方法
a = new Object(), a = {}
9.类的定义方法(prototype)(继承)
Var a = function(){}
a.prototype = {}
new a();
10.this 关键字的指向
obj.foo()== obj
foo()== window;
new obj.foo()== obj //方法调用模式,this指向obj //函数调用模式,this指向window //构造器调用模式, this指向新建立对象
foo.call(obj)== obj;//APPLY调用模式,this指向obj
11.DOM操作
在
hello
,将hello替换成“你好”将Body的innerHTML重写和将
的innerHTML重写有何区别
12.什么是闭包,及其作用
13.事件绑定的几种方法,事件冒泡
14.Ajax/json/json0070
15.异步ajax的优缺点
优点:
相对于同步ajax:不会造成UI卡死,用户体验好。
相对于刷新页面,省流量
缺点:
后退按钮无效;
多个请求同时触发时,由于回调时间不确定,会造成混乱,避免这种混乱需
要复杂的判断机制。
搜索引擎不友好
数据安全
16.常用JS框架,是否使用过jQuery,jQuery的优点。17.18.JS用了多久,介绍一下自己做过的JS项目,19.开发调试工具和方法(编辑器、浏览器
20.类、函数、对象(代码表达)
21.闭包(setTimeout)(产生两个首尾相连的计时器)(使用for循环产生10个计时器)||
22.Jquery Mobile
23.HTML5/CSS3
24.是否听说和理解webapp
1.应届
25.在行的语言,优缺点
26.介绍项目经验,合作开发、独立开发
27.编程的重要知识
28.开发过程中遇到困难,如何解决。
29.有没有个人/开源项目
30.前端开发(HTML/CSS/
31.
web前端核心技术
从事前端开发工作1年多了,从最初的DIV+CSS学起,到现在学到html5、css3、javascript,jquery等等,我觉得前端要学的技术太多了,很多人认为前端开发要掌握的技能简单,就是网页制作,其实不然,前端开发是网站的前台代码实现,包括基本的HTML和CSS以及JavaScript/ajax,现在最新的高级版本是HTML5、CSS3,以及SVG等。JavaScript作为最难的语言之一,许多编程高手也不敢妄自菲薄、自封精通。
关于兼容性的问题我相信对于每个做前端开发的人来讲是一个很头疼的问题,互联网目前主流浏览器有IE6789,Firefox,Chrome,Opera,Safari,遨游,包括国内主流的搜狗,腾讯 TT,360等等;从内核上讲主要有IE的,遨游版IE,safari,firefox以及opera的,这些都是大家常见的。所谓的浏览器兼容性问题,是指因为不同的浏览器对同一段代码有不同的解析,造成页面显示效果不统一的情况。在大多数情况下,用户用什么浏览器来查看同一网站,都应该是统一的显示效果。所以浏览器的兼容性问题是前端开发人员经常会碰到和必须要解决的问题。这个时候就需要针对不同的浏览器写不同的CSS,这个过程叫CSS hack。虽然我们写代码都要求按照标准,不写hack代码,但实际工作中为了兼容主流浏览器,hack代码是免不了的,所以这也应该是每个前端开发人员必备的技能。
前端的开发工具很多,比较常见的有Dreamweaver,Notepad,webstrom,Sublime Text等等,我现在在使用webstorm,强大的提示功能可以帮助我们很快的熟悉并掌握网页布局,检查错误等。调试代码的工具我使用的Firebug。Firebug是网页浏览器Mozilla firefox 下的一款开发类插件,它集HTML查看和编辑、Javascript控制台、网络状况监视器于一体,是开发JavaScript、CSS、HTML和Ajax的得力助手。Firebug如同一把精巧的瑞士军刀,从各个不同的角度剖析Web页面内部的细节层面,给Web开发者带来很大的便利。Firebug也是一个除错工具。用户可以利用它除错、编辑、甚至删改任何网站的CSS、HTML、Dom 以及Javascript代码。
以上是自己做前端开发的一点心得,它所涵盖的知识面远远不止这些,我也在不断的学习,不断地丰富自己,希望自己能在前端这个职位上开阔自己的一片天地!
Web开发工程师试题
姓名:参与web项目个
一、选择题
1、提供Java存取数据库能力的包是()
A. java.sqlB.java.awtC.java.langD.java.swing
答案:A2、以下语句中,没有创建出字符串对象的是_______。
A.String str;C.String str= new String();B.String str = “Hello”;
D.new String(“Hello”);
答案:A3、有关会话跟踪技术描述正确的是(多选)
A.Cookie是Web服务器发送给客户端的一小段信息,客户端请求时,可以读取该信息发送到服务器端
B.关闭浏览器意味着会话ID丢失,但所有与原会话关联的会话数据仍保留在服务器上,直至会话过期
C.在禁用Cookie时可以使用URL重写技术跟踪会话
D.隐藏表单域将字段添加到HTML表单并在客户端浏览器中显示
正确答案为:ABC4、下列选项中不属于CSS 文本属性的是()
A.font-size B.text-transform C.text-align D.line-height
答案:D5、、如何去掉文本超级链接的下划线?
A.a {text-decoration:no underline}B.a {underline:none}C.a {decoration:no underline}D.a {text-decoration:none}
答案:D6、在Ajax技术中,关于HTTP 协议向服务器传送数据的方式描述正确的是()。
A、包括Post、Get方式 B、如果传输数据包含机密信息,建议采用MD5数据提交方式 C、GET执行效率和POST方法一样 D、Post传送的数据量较小,不能大于1B
答案:A7、在jQuery中,下面()写法是错误的。
A、$(“div p”)B、$(“div.containner”)C、$(“table a”,content)D、$(#divID)答案:D8、点击页面的按钮,使之打开一个新窗口,加载一个网页,以下JavaScript代码中可行的是(AD)
A.
')”/>
B.
C.
D.
答案:AD
9.不能用来修饰interface的有()
A.private B.public C.protected D.static
答案:ACD
二、问答题
1、一个人花8块钱买了一只鸡,9块钱卖掉了,然后他觉得不划算,花10块钱又买回来了,11块卖给另外一个人。问他赚了多少?
2元
2、CSS+DIV开发Web页面的优势有哪些?
优点:1)div+css,这个网页设计模式中,div承担了网页的内容,css承担了网页的样式。这样就使网页的内容和样式的分离开来。有利于页面的维护升级。
2)有助于提高搜索引擎亲和力(快速找到需要的数据,而不是像在table中一
层层的查找)3)有助于页面的重构(换皮肤如blog,直接套用另外一套样式就可以实现,而不用改动网页脚本。)缺点:开发效率比较低
3、如何创建一个Javascript Object?
可以有两种方式创建一个Javascript Object, 代码如下: 第一种方法:var obj = new Object();第二种方法:var ob = {};
4、两种跳转方式分别是什么?有什么区别?
有两种,分别为:
前者页面不会转向include所指的页面,只是显示该页的结果,主页面还是原来的页面。执行完后还会回来,相当于函数调用。并且可以带参数.后者完全转向新页面,不会再回来。相当于go to 语句。
5、用一条SQL语句 查询出每门课都大于80分的学生姓名
namekechengfenshu
张三语文81
张三数学75
李四语文76
李四数学90
王五语文8
1王五数学100
王五英语90
A: select distinct name from tablewherename not in(select distinct name from table where fenshu<=80)
B:select name from table group by name having min(fenshu)> 80;
6、简述列举文档对象模型DOM里document的常用的查找访问节点的方法并做简单说明
Document.getElementById根据元素id查找元素 Document.getElementByName 根据元素name查找元素 Document.getElementTagName 根据指定的元素名查找元素
7、dom解析的特点?
特点:将整个xml文件加载到内存中,形成一个对象树,每一个节点都是一个对象通过每一个节点的方法及属性与外部交互。
优点及缺点:
优点: 可随意读,可写
缺点:因为要将所有的内容加载内存中,耗内存,速度慢。
8、在IE中,HTML对象的 ID 可以作为 document 的下属对象变量名直接使用,在FF中不能,此兼容性问题如何解决?
解决方法:
使用对象变量时全部用标准的 getElementById(“idName”)
9、鼠标手指状显示,在浏览器中的标准写法?
全部用标准的写法 cursor: pointer;
10、了解搜索引擎如何抓取网页和如何索引网页
11、JSP如何连接SQL SERVER,请写个示例
我平时做的一个小例子: public class UseExecuteQuery{/**
* @param args
*/
public static void main(String[] args){String url=“jdbc:microsoft:sqlserver://localhost:1433;DataBaseName=jsp_test”;String userName=“sa”;String password="";String sql=null;
Connection conn=null;
下载2017年前端开发面试题(含答案)5篇.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
网址:https://www.xiexiebang.com/a12/2019051420/c8748cadf2733c86.html
声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。
前端开发工作规范
为提高团队协作效率,便于后台人员添加功能及前端后期优化维护,输出高质量的文档,特制订此文档。本规范文档一经确认,前端开发人员必须按本文档规范进行前台页......
www.xiexiebang.com 什么是前端开发工程师 前端开发工程师是Web前端开发工程师的简称,是近五年才真正开始受到重视的一个新兴职业。Web前端开发技术是一个先易后难的过程,主要......
ASP.NET前端开发经验总结 通过此次大作业的设计到完成,我负责的是web前端的开发,经过此次作业和结合W3C上的自学,我渐渐有了一些对前端开发的小小经验(仅为个人意见)。 WEB标准是......
WEB前端开发经验总结
发布时间:2009-04-20 09:05:33来源:作者:shengman点击:21015
这里跟大家谈谈个人对WEB前端开发的一些经验(当然都是个人的一些理解,有什么地方说的欠妥或不对......
1. 对于Web2.0的理解;
2. 常用的WEB开发和测试工具(JS,CSS,HTML,程序脚本……);
3. 对于网站优化的理解(SEO,UEO);
4. 通过哪些网站或者博客了解和交流互联网最新技术;
5. 最欣赏哪......
广东2004年4月28日下午面试题(含答案)
一.某高校组织300名学生党员到井冈山旅游,你是组织者,如何组织?(答案略)二、目前我国未成年人刑事犯罪的犯罪率逐年升高,问你怎样分析这个......
1、jsp和servlet的区别、共同点、各自应用的范围?? JSP是Servlet技术的扩展,本质上就是Servlet的简易方式。JSP编译后是“类servlet”。Servlet和JSP最主要的不同点在于,Servle......
前端开发和美工工程师工作总结作为公司的网站前端开发和美工,2017年本人主要负责的是经文保总队的各个系统的界面设计及动态页面制作,包括以下内容:一、吉林省单位内部安全保卫......