Web前端相关面试题
Posted 刘元涛
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Web前端相关面试题相关的知识,希望对你有一定的参考价值。
2012-09-01 10:19:02| 分类: js |举报 |字号 订阅
1,判断字符串是否是这样组成的,第一个必须是字母,后面可以是字母、数字、下划线,总长度为5-20
var reg = /^[a-zA-Z][a-zA-Z_0-9]4,19$/;/*注意:1.要用^开头和$结尾,2.总长度5-20翻译为4,19;3.别忘了还有下划线;*/
reg.test("a1a__a1a__a1a__a1a__");
2,截取字符串abcdefg的efg
var str = "abcdefg";
if (/efg/.test(str)) /*判断是否有efg*/
varefg = str.substr(str.indexOf("efg"), 3);//indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。Substr中的3表示取3个的意思
alert(efg);
3,判断一个字符串中出现次数最多的字符,统计这个次数
/*将字符串的字符保存在一个hashtable中,key是字符,value是这个字符出现的次数*/
var str = "abcdefgaddda";
var obj = ;
for (var i = 0, l = str.length; i < l;i++)
var key = str[i];//取一个字符出来,比如c
if(!obj[key]) //在对象中存在这个【字符的个数】么?注意,是字符的个数(比如1,3,4),而不是字符(a,b,d)
obj[key] = 1;//如果不存在,就将这个字符出现的个数设置为1
else
obj[key]++;//如果个数已经存在了,就加1
var max = -1;
var max_key = "";
var key;//只是初始化一个变量,用于下面的遍历,没什么
for (key in obj) //遍历对象中的所有字符(个数)
if(max < obj[key])
max = obj[key];
max_key = key;
alert("max:"+max+"max_key:"+max_key);
4,IE与FF脚本兼容性问题
(1) window.event:
表示当前的事件对象,IE有这个对象,FF没有,FF通过给事件处理函数传递事件对象
(2) 获取事件源
IE用srcElement获取事件源,而FF用target获取事件源
(3) 添加,去除事件
IE:element.attachEvent(“onclick”, function)element.detachEvent(“onclick”, function)
FF:element.addEventListener(“click”, function,true) element.removeEventListener(“click”, function,true)
(4) 获取标签的自定义属性
IE:div1.value或div1[“value”]
FF:可用div1.getAttribute(“value”)
(5) document.getElementByName()和document.all[name]
IE;document.getElementByName()和document.all[name]均不能获取div元素
FF:可以
(6) input.type的属性
IE:input.type只读
FF:input.type可读写
(7) innerText textContent outerhtml
IE:支持innerText,outerHTML
FF:支持textContent
(8) 是否可用id代替HTML元素
IE:可以用id来代替HTML元素
FF:不可以
//这里只列出了常见的,还有不少,更多的介绍可以参看javascript在IE浏览器和Firefox浏览器中的差异总结
5,规避javascript多人开发函数重名问题
(1) 可以开发前规定命名规范,根据不同开发人员开发的功能在函数前加前缀//万一有同名的人,也是悲剧..不过出现的几率很小啦
(2) 将每个开发人员的函数封装到类中,调用的时候就调用类的函数,即使函数重名只要类名不重复就ok //这个方法好
6,javascript面向对象中继承实现
javascript面向对象中的继承实现一般都使用到了构造函数和Prototype原型链,简单的代码如下:
function Animal(name)
this.name = name;
Animal.prototype.getName = function()alert(this.name)
function Dog() ;
Dog.prototype = newAnimal("Buddy");
Dog.prototype.constructor = Dog;
var dog = new Dog();
//JS面向对象的内容推荐看李琰灰老师的视频教程
7,FF下面实现outerHTML//这一题看不懂什么意思
FF不支持outerHTML,要实现outerHTML还需要特殊处理
思路如下:
在页面中添加一个新的元素A,克隆一份需要获取outerHTML的元素,将这个元素append到新的A中,然后获取A的innerHTML就可以了。
<!DOCTYPE html PUBLIC "-//W3C//DTDXHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type"content="text/html; charset=gb2312" />
<title>获取outerHMTL</title>
<style>
divbackground:#0000FF;width:100px;height:100px;
spanbackground:#00FF00;width:100px;height:100px;
pbackground:#FF0000;width:100px;height:100px;
</style>
</head>
<body>
<divid="a"><span>SPAN</span>DIV</div>
<span>SPAN</span>
<p>P</p>
<scripttype="text/javascript">
function getOuterHTML(id)
varel = document.getElementByIdx_x(id);
varnewNode = document.createElement_x("div");
document.appendChild(newNode);
varclone = el.cloneNode(true);
newNode.appendChild(clone);
alert(newNode.innerHTML);
document.removeChild(newNode);
getOuterHTML("a");
</script>
</body>
</html>
8,编写一个方法 求一个字符串的字节长度
假设:
一个英文字符占用一个字节,一个中文字符占用两个字节
function GetBytes(str)
var len = str.length;
var bytes = len;
for(var i=0; i<len; i++)
if (str.charCodeAt(i) > 255) bytes++;//这里有拓展阅读http://mrthink.net/js-cn-en-character/
return bytes;
alert(GetBytes("你好,as"));
9,编写一个方法 去掉一个数组的重复元素//和第三题的思路是一样的
var arr = [1 ,1 ,2, 3, 3, 2, 1];
Array.prototype.unique = function()
var ret = [];
var o = ;
var len = this.length;
for (var i=0; i<len; i++)
var v = this[i];
if (!o[v])
o[v] = 1;
ret.push(v);
return ret;
;
alert(arr.unique());
10,写出3个使用this的典型应用
(1)在html元素事件属性中使用,如
<input type=”button” οnclick=”showInfo(this);” value=”点击一下”/>
(2)构造函数
function Animal(name, color)
this.name = name;
this.color = color;
(3)
<input type="button" id="text"value="点击一下" />
<scripttype="text/javascript">
var btn =document.getElementByIdx_x("text");
btn.onclick = function()
alert(this.value); //此处的this是按钮元素
</script>
(4)CSS expression表达式中使用this关键字
<table width="100px"height="100px">
<tr>
<td>
<divstyle="width:expression_r(this.parentNode.width);">divelement</div>
</td>
</tr>
</table>
12,如何显示/隐藏一个DOM元素?
el.style.display = "";//显示的话就是空值
el.style.display = "none";
el是要操作的DOM元素
13,JavaScript中如何检测一个变量是一个String类型?请写出函数实现
String类型有两种生成方式://注意第二种方式,构造函数的
(1)Var str = “hello world”;
(2)Var str2 = new String(“hello world”);
function IsString(str)
return (typeof str == "string" || str.constructor == String);
var str = "";
alert(IsString(1));
alert(IsString(str));
alert(IsString(new String(str)));
14,网页中实现一个计算当年还剩多少时间的倒数计时程序,要求网页上实时动态显示“××年还剩××天××时××分××秒”
<!DOCTYPE HTML PUBLIC "-//W3C//DTDHTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>倒计时</title>
</head>
<body>
<input type="text"value="" id="input" size="1000"/>//时间将在这里显示
<scripttype="text/javascript">
function counter()
var date = new Date();
var year = date.getFullYear();
var date2 = new Date(year, 12, 31, 23, 59, 59);
//注意下面的时间表示方法!!
var time = (date2 - date)/1000;
var day =Math.floor(time/(24*60*60))
var hour = Math.floor(time%(24*60*60)/(60*60))
var minute = Math.floor(time%(24*60*60)%(60*60)/60);
var second = Math.floor(time%(24*60*60)%(60*60)`);
var str = year + "年还剩"+day+"天"+hour+"时"+minute+"分"+second+"秒";
document.getElementByIdx_x("input").value = str;
window.setInterval("counter()", 1000);//每一秒执行一次
</script>
</body>
</html>
15,补充代码,鼠标单击Button1后将Button1移动到Button2的后面<div><input type=”button” id =”button1″ value=”1″ οnclick=”???”> <input type=”button” id =”button2″ value=”2″ /”> </div>
<div>
<input type="button" id ="button1"value="1" οnclick="moveBtn(this);">
<input type="button" id ="button2"value="2" />
</div>
<scripttype="text/javascript">
function moveBtn(obj) //思路:先克隆一个,然后挂上,然后删除原来的那个
var clone = obj.cloneNode(true);
var parent = obj.parentNode;
parent.appendChild(clone);
parent.removeChild(obj);
</script>
16,JavaScript有哪几种数据类型
简单:Number,Boolean,String,Null,Undefined
复合:Object,Array,Function
17,下面css标签在JavaScript中调用应如何拼写,border-left-color,-moz-viewport
borderLeftColor
mozViewport
18,JavaScript中如何对一个对象进行深度clone
function cloneObject(o)
if(!o|| 'object' !== typeof o)
return o;
var c = 'function' === typeof o.pop ? [] : ;
var p, v;
for(p in o)
if(o.hasOwnProperty(p))
v = o[p];
if(v && 'object' === typeof v)
c[p] = Ext.ux.clone(v);
else
c[p] = v;
return c;
;
19,如何控制alert中的换行
\\n alert(“p\\np”);
20,请实现,鼠标点击页面中的任意标签,alert该标签的名称.(注意兼容性)
<!DOCTYPE html PUBLIC "-//W3C//DTDXHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type" content="text/html;charset=gb2312" />
<title>鼠标点击页面中的任意标签,alert该标签的名称</title>
<style>
div background:#0000FF;width:100px;height:100px;
spanbackground:#00FF00;width:100px;height:100px;
pbackground:#FF0000;width:100px;height:100px;
</style>
<scripttype="text/javascript">
document.onclick = function(evt)
vare = window.event || evt;
vartag = e["target"] || e["srcElement"];
alert(tag.tagName);
;
</script>
</head>
<body>
<divid="div"><span>SPAN</span>DIV</div>
<span>SPAN</span>
<p>P</p>
</body>
</html>
21,请编写一个JavaScript函数parseQueryString,它的用途是把URL参数解析为一个对象,如:
var url = “http://witmax.cn/index.php?key0=0&key1=1&key2=2″;
function parseQueryString(url)
var params = ;
var arr = url.split("?");
if(arr.length <= 1)
return params;
arr = arr[1].split("&");
for(var i=0, l=arr.length; i<l; i++)
var a = arr[i].split("=");
params[a[0]] = a[1];
return params;
var url ="http://witmax.cn/index.php?key0=0&key1=1&key2=2";
var ps = parseQueryString(url);
alert(ps["key1"]);
22,ajax是什么? ajax的交互模型? 同步和异步的区别? 如何解决跨域问题?
Ajax是多种技术组合起来的一种浏览器和服务器交互技术,基本思想是允许一个互联网浏览器向一个远程页面/服务做异步的http调用,并且用收到的数据来更新一个当前web页面而不必刷新整个页面。该技术能够改进客户端的体验。包含的技术:
XHTML:对应W3C的XHTML规范,目前是XHTML1.0。
CSS:对应W3C的CSS规范,目前是CSS2.0
DOM:这里的DOM主要是指HTML DOM,XML DOM包括在下面的XML中
JavaScript:对应于ECMA的ECMAScript规范
XML:对应W3C的XML DOM、XSLT、XPath等等规范
XMLHttpRequest:对应WhatWG的WebApplications1.0规范(http://whatwg.org/specs/web-apps/current-work/)
AJAX交互模型
同步:脚本会停留并等待服务器发送回复然后再继续
异步:脚本允许页面继续其进程并处理可能的回复
跨域问题简单的理解就是因为JS同源策略的限制,a.com域名下的JS无法操作b.com或c.a.com下的对象,具体场景如下:
PS:(1)如果是端口或者协议造成的跨域问题前端是无能为力的
(2) 在跨域问题上,域仅仅通过URL的首部来识别而不会尝试判断相同的IP地址对应的域或者两个域是否对应一个IP
前端对于跨域的解决办法:
(1) document.domain+iframe
(2) 动态创建script标签
23,什么是闭包?下面这个ul,如何点击每一列的时候alert其index?
<ul id=”test”>
<li>这是第一条</li>
<li>这是第二条</li>
<li>这是第三条</li>
</ul>
内部函数被定义它的函数的外部区域调用的时候就产生了闭包。
(function A()
var index = 0;
var ul = document.getElementByIdx_x("test");
var obj = ;
for (var i = 0, l = ul.childNodes.length; i < l; i++)
if (ul.childNodes[i].nodeName.toLowerCase() == "li")
var li = ul.childNodes[i];
li.onclick = function()
index++;
alert(index);
)();
24,请给出异步加载js方案,不少于两种
默认情况javascript是同步加载的,也就是javascript的加载时阻塞的,后面的元素要等待javascript加载完毕后才能进行再加载,对于一些意义不是很大的javascript,如果放在页头会导致加载很慢的话,是会严重影响用户体验的。
异步加载方式:
(1) defer,只支持IE
(2) async:
(3) 创建script,插入到DOM中,加载完毕后callBack,见代码:
function loadScript(url, callback)
var script = document.createElement_x("script")
script.type = "text/javascript";
if(script.readyState) //IE
script.onreadystatechange = function()
if (script.readyState == "loaded" ||
script.readyState == "complete")
script.onreadystatechange = null;
callback();
;
else //Others: Firefox, Safari, Chrome, and Opera
script.onload = function()
callback();
;
script.src = url;
document.body.appendChild(script);
25,请设计一套方案,用于确保页面中JS加载完全。
var n =document.createElement_x("script");
n.type = "text/javascript";
//以上省略部分代码
//ie支持script的readystatechange属性(IE supportthe readystatechange event for script and css nodes)
if(ua.ie)
n.onreadystatechange = function()
var rs = this.readyState;
if('loaded' === rs || 'complete'===rs)
n.onreadystatechange = null;
f(id,url); //回调函数
;
//省略部分代码
//safari 3.x supports the load event forscript nodes(DOM2)
n.addEventListener('load',function()
f(id,url);
);
//firefox and opera support onload(but notdom2 in ff) handlers for
//script nodes. opera, but no ff, supportthe onload event for link
//nodes.
else
n.onload = function()
f(id,url);
;
26,js中如何定义class,如何扩展prototype?
Ele.className = “***”; //***在css中定义,形式如下:.***…
A.prototype.B = C;
A是某个构造函数的名字
B是这个构造函数的属性
C是想要定义的属性的值
27,如何添加html元素的事件,有几种方法.
(1)为HTML元素的事件属性赋值
(2)在JS中使用ele.on*** = function() …
(3)使用DOM2的添加事件的方法 addEventListener或attachEvent
28,documen.write和 innerHTML的区别
document.write只能重绘整个页面
innerHTML可以重绘页面的一部分
29,多浏览器检测通过什么?
(1) navigator.userAgent
(2)不同浏览器的特性,如addEventListener
30,js的基础对象有那些,window和document的常用的方法和属性列出来
String,Number,Boolean
Window:
方法:setInterval,setTimeout,clearInterval,clearTimeout,alert,confirm,open
属性:name,parent,screenLeft,screenTop,self,top,status
Document
方法:createElement_x,execCommand,getElementById,getElementsByName,getElementByTagName,write,writeln
属性:cookie,doctype,domain,documentElement,readyState,URL,
31,前端开发的优化问题
(1)减少http请求次数:css spirit,data uri
(2) JS,CSS源码压缩
(3)前端模板 JS+数据,减少由于HTML标签导致的带宽浪费,前端用变量保存AJAX请求结果,每次操作本地变量,不用请求,减少请求次数
(4)用innerHTML代替DOM操作,减少DOM操作次数,优化javascript性能
(5)用setTimeout来避免页面失去响应
(6)用hash-table来优化查找
(7)当需要设置的样式很多时设置className而不是直接操作style
(8)少用全局变量
(9)缓存DOM节点查找的结果
(10)避免使用CSS Expression
(11)图片预载
(12)避免在页面的主体布局中使用table,table要等其中的内容完全下载之后才会显示出来,显示比div+css布局慢
32,如何控制网页在网络传输过程中的数据量
启用GZIP压缩
保持良好的编程习惯,避免重复的CSS,JavaScript代码,多余的HTML标签和属性
33,Flash、Ajax各自的优缺点,在使用中如何取舍?
Ajax的优势
(1)可搜索型
(2)开放性
(3)费用
(4)易用性
(5)易于开发
Flash的优势
(1)多媒体处理
(2)兼容性
(3)矢量图形 比SVG,Canvas优势大很多
(4)客户端资源调度,比如麦克风,摄像头
// 引用致:http://blog.sina.com.cn/s/blog_491997ee0100axxb.html
Javascript检测字符串字节长度(for VS 正则)
(2008-11-09 21:30:46)
标签:
javascript
js
字符串
检测
字节长度
for
正则表达式
regexp
it
分类:JAVASCRIPT
先来几句题外话。今天面试百度公司web前端研发部的职位,整个面试持续了一个小时。面试结束的时候,我心情格外地好,虽然有部分问题还是回答不上来或者回答得不好,但面试官是一个很好的人,面试就像在谈心,我抒发了许多压在心中很久的想法,所以面试结束后心情格外地舒畅^_^
有一道题今天没回答好,给我的印象也特别深:用Javascript检测一个字符串的字节长度。
当然,首先必须弄清楚‘字节长度’的含义。字符串有一个length属性,可以检测该字符串的长度,但是这里所说的长度是‘字符长度’。而‘字节长度’,呵呵,比如说吧,中文字符占用2个字节(与编码有关),所以,字节长度!= 字符长度^_^
我在考试的时候一般都用惯性思维(所以每次竞赛的时候都不能拿到好成绩^_^),于是马上就想到给它一个for循环,然后判断每一个字符的编码,但是我没有马上回答。面试官见我好像不敢回答,就主动地提示说可不可以用for循环,我当然是肯定了一下啦。但是我不马上回答说用for循环,是因为我清楚这是一般人的思维,百度公司哟,不可能简单地考一个for循环的啦。果然不出我所料,在我肯定了之后,面试官进一步问我,有没有其他更好的方法,用for循环似乎复杂度高了些。
于是,我苦思冥想,绞尽脑汁,最后害怕时间拖拉得太长就放弃了。面试官真是个好人,在我放弃的时候他没有不了了之,还提示说能不能用正则表达式,呀,我恍然大悟啊!我花了那么长时间去学正则表达式,真正要用到的时候竟然忽略了它,罪过啊!
好吧,在面试的时候,我承认自己的确认为用正则表达式去检测在复杂度上会胜于for。
但是,我想说的是但是……
先看看一下两段代码吧,它们分别用for循环和正则表达式来检测字符串的字节长度:
for循环检测字符串的字节长度:
var lenFor = function(str)
var byteLen=0,len=str.length;
if(str)
for(var i=0; i<len; i++)
if(str.charCodeAt(i)>255)
byteLen += 2;
else
byteLen++;
return byteLen;
else
return 0;
正则表达式检测字符串的字节长度:
var lenReg = function(str)
return str.replace(/[^\\x00-\\xFF]/g,'**').length;
;
我用以下代码段对以上两个函数进行测试,主要是测试其运行时间:
var s = '......';//一个很长的字符串,这里不罗列
function a()
var timeStart,timeEnd;
timeStart = new Date();
var s1 = lenReg(s);
timeEnd = new Date();
var t1 = (timeEnd - timeStart)*1000;
timeStart = new Date();
var s2 = lenFor(s);
timeEnd = new Date();
var t2 = (timeEnd - timeStart)*1000;
alert('lenReg: ' + s1 + ' time: ' + t1 + '\\nlenFor: ' + s2 + ' time: ' +t2);
window.onload = function()
a();
;
以上代码在浏览器载入完毕的时候弹出一个警示窗口,窗口上有两行信息:第一行是用正则表达式检测的字符串字节长度和所用时间(×1000);第二行是用for循环检测字符串字节长度和所用时间(×1000)。
我得到两种答案:
第一种:
lenReg: 25824 time: 20000
lenFor: 25824 time: 10000
第二种:
lenReg: 48795 time: 15000
lenFor: 48795 time: 25000
需要说明的是,两次测试所用的字符串为同一字符串。
为什么会相差那么大呢?我到底偷偷改了什么??以上我提过,“中文字符占用2个字节(与编码有关)”(本文第三段),中文字符占用多少个字节是与编码有关的,一般情况下,GB-2312和UTF-8编码中,中文字符占用2个字节,但是在iso-8859-1编码中,中文字符占用5个字节。
是的,问题就在于文档的编码。以上第一种情况的编码为:charset=UTF-8,第二种情况的编码为charset=iso-8859-1。
在中文网页中,我们一般都不会用charset=iso-8859-1进行编码(中文乱码),而是用charset=UTF-8或GB-2312进行编码。问题就在这里,比较一下以上的第一种情况吧:
lenReg: 25824 time: 20000
lenFor: 25824 time: 10000
如上所示,用正则表达式检测所用的时间竟然是for循环的两倍!!!!(其实,测试多次之后也不全部都是两倍,但大部分测试都是两倍)
为什么呢?
str.replace(/[^\\x00-\\xFF]/g,'**').length;
看看以上语句(lenReg函数中的语句)。就我个人理解,问题就出现在这里——replace的时候要遍历一次字符串,在调用length的时候又要遍历一次字符串,所以整个运算过程需要遍历两次字符串。而for循环只需要遍历一次——这应该就是问题所在了,但是我不是非常确定。
我不太确定以上的理解是否确切,但是从表面上分析应该是这样的。
那么,用正则表达式检测真的使算法更加复杂吗?还是以上没有充分利用正则表达式的优势?现在我还没有意义的想法,需要进一步去推敲。先保持着怀疑吧^_^……
跨域操作
引用致
http://www.cnblogs.com/rainman/archive/2011/02/20/1959325.html
什么是跨域?
答:简单理解就是A域的js无法操作B域下的文件对象。
什么情况下便跨域了?
答:协议、域名、端口号如果有不相同的便是跨域。
跨域产生的原因
答:因为同源策略的限制。
什么是同源策略
答:同源策略指的是相同的协议、域名和端口号。简单的理解就是来自同一个地方的文件。
什么是跨子域
答:主域相同,子域不同的情况;
如:http://www.a.com/a.js和 http://a.com/b.js
http://www.a.com/a.js和 http://script.a.com/b.js
跨域的解决办法
答:如果是跨子域:
1、可以通过设置document.domain的办法来解决;
非跨子域的情况:
1、动态创建script
2、利用iframe和location.hash,需要借助一个proxy的代理文件来完成
3、window.name
4、使用HTML5postMessage
5、利用flash
引用致
http://www.kekaku.com/webdevelop/1052
sass和less有什么不同点
答:
1、sass和less在定义变量上,前缀符号不相同,sass用的是$,less用的是@符;
2、sass是基于ruby的,需要在服务器端处理;less是用less.js文件来处理less代码输出css。
h5和html4有什么不同点
答:
1、简化了doctype;
2、新增了不少的元素(header、footer、nav、aside、article、section...)和属性(form、placehoder、autofocus);
3、新增了canvas元素;
4、新增了WebStorage功能(本地存储)
css3有新不同点或css3有什么新特性
答:
1、css3中新增了很多的选择器(属性选择器)
2、新增了阴影、圆角效果、transform、transition等
3、css3中的Media Query(媒介查询)
前端优化一般是怎么做的?
答:
前端优化分两类 1.性能优化 2.体验优化
性能优化:主要通过图片优化、脚本样式优化、HTTP请求优化
体验优化:
通过思考用户进入到页面之后最想干什么、接下来会干什么做出能够让用户很方便进行查找和操作的页面;
另外,可以通过引导的方式让一些小白用户进行学习式操作;
总之,一切围绕用户的操作简便、傻瓜化进行。
体验优化你就说 把每个界面 要解决的问题 弄清楚 对这些交互点 进行重点 导航和视觉优化
说到你在阿里 这段时间的时候 着重说下 做了哪些项目 什么特点 有什么想法
前面的工作经历用个一两分钟 说完 后面阿里这段 最少说5分钟
收获一般说 用了什么技术 什么组件 有什么好处
每个项目都会有收获多想想就好了
答:近期做过的项目有 eCRM(会员关系管理)和smartp(购物车营销);
这些项目主要都是用在商家中心,属于商家后台的项目;它不像前台项目会有很多炫丽的动画,后台项目主要偏交互行为;
这些项目一般都有一些共性,大都会用到表格、表单、以及提示消息。
技术保障部
僧稠
数据可视化
http://d3js.org/
http://datavlab.org/
http://www.vizinsight.com/
http://10.125.11.34/mointor-rtc/aliyunmail.html
这是我们目前做的时实态展示
Q:在阿里这两年你有什么收获?
A:阿里是个大家庭,通常一个项目的开始会涉及到多个部门和团队的合作;通过这些跨部门、跨团队的合作,使我的沟通能力得到了锻炼。
在阿里,项目需求是非常多的,在完成这些项目需求的同时,自己的技术能力也得到了提升。
Q:你觉得阿里怎么样?
A:阿里是个大家庭;环境优美,办公设施齐全;
阿里前端更是牛人多多,引领了整个业界的发展,是大多数前端开发人员梦寐以求的工作地方。
Q:这两个月有什么改变?
A:说实在的,这两个月自己的状态我觉得我自己都不满意。由于外包同学转正的问题,心情比较低落,在工作和学习上都有所耽误。我希望自己能够早点走出这种不良状态,回到自己正常的状态。积极的去完成和推动工作,坚持每天学一点,持之以恒,不断的积累。
Q:你的缺点是什么?
A:沟通能力还有待提高,技术研究深度还不够。在今后的工作和生活当中,争取能够多参加一些分享交流活动,提交自己的沟通技巧和技术能力。此外,坚持每天学一点,持之以恒,不断的积累,以提高自己的技术能力。
Q:你的优势/优点/核心价值是什么?
A:踏实,做事认真负责。
Q:会不会经常加班?
A:一般来说,我不大喜欢加班。
但是,工作需要时我会主动的加班完成。
Q:有没有了解阿里最近的新闻,怎么看?
Q:未来的规划是什么?
A:扎实自己的基础知识,学习新技术;今后的前端开发面向的是多个终端,在这方面进行学习研究(响应式设计、响应式布局)。
Q:怎么看待前端?
A:前端同学对接的是设计同学交互同学和开发同学,做出来的产品最终呈现给用户;
它需要将设计同学的设计和交互同学的想法给做出来,配合开发同学完成最终的产品。给到用户一个最好的用户体验。
Q:怎么看待公司6点前食堂排队就很长了这种现象?
A:阿里是个弹性工作制的公司,部分员工在合理的安排时间之后,我觉得在6点钟吃饭也是没关系的,可以早去吃完饭早些回到自己的工作岗位上;如果仅仅只是为了吃饭而排很长的队伍,我觉得没有多大必要,吃饭只是一个作息时间的问题,可以将自己的作息时间稍微往后调整一下,改成6点半应该差不多,可以省掉很多的排队时间。
Q:公司有没有一些不好的地方?
A:目前来看,我觉得公司在各方面做得都还是挺好的,我没发现有什么不好的地方。
Q:介绍一下最近做的比较有亮点的项目?
A:eCRM(会员关系管理)、smartp(购物车营销);
会员关系管理改版,从商家中心独立出来做为一个单独的门户,提供商家会员管理和活动管理等功能。
项目新增了自己的首页、美化了之前老的页面;
购物车营销-自由搭
卖家可以创建自己的搭配套餐;
项目当中将两组宝贝选择器关联起来,主选择器只能选择主件宝贝,辅选择器可以选择多件宝贝,同时主件宝贝和辅件宝贝之间必须是互斥的关系。
Q:别人怎么评价你?
A:踏实,可靠
Q:评价你身边一个人?
A:我的师兄“影风”为人豁达开朗。
Q:如果没转正?
A:如果转正没有成功,说明我自身还存在不足点,我希望公司能够给我指出,让我能够改掉那些坏毛病早日达到公司期望的要求。
Q:如果转正?
A:如果转正成功,我会更加努力的去工作,为公司的发展建设付出自己的一份力量。
Q:为什么要转正?
A:公司所处的产业,以及在业界的声誉、工作性质都很吸引我;另外,由于公司的决策,外包同学不转正就得搬去滨江工作,会影响到项目开发时正常的沟通。
Q:最近有没有看书?
A:最近由于忙于工作的问题,学习上有所耽误;在这之前,我会坚持每天早半个小时到工作,每天学一点,不断提高自己。
Q:有人投诉?
A:坦然面对人家的投诉,及时了解人家为什么投诉以及正确的去处理投诉问题,避免在今后的工作当中再次遇到相同的情况。
Q:谈谈你身上的优看缺点?
A:优点:踏实,做事认真负责。
缺点:沟通能力和和技术深度还有待提高。
阿里巴巴企业文化
1、远景目标
成为一家持续发展102年的企业
成为全球十大网站之一
只要是商人就一定要用阿里巴巴
2、使命
让天下没有难做的生意!
3、阿里巴巴“六脉神剑”的价值体系
客户第一:关注客户的关注点,为客户提供建议和资讯,帮助客户成长
团队合作:共享共担,以小我完成大我
拥抱变化:突破自我,迎接变化
诚信:诚实正直,信守承诺
激情:永不言弃,乐观向上
敬业:以专业的态度和平常的心态做非凡的事情
引用致:
http://zhidao.baidu.com/link?url=xyPv-wgmtz7gT_YjS_GdFWBwGcaFsb_eTkMrhkcJ9Nn8RGBAqTFdjbuUie9ibGAeOzcpHcWYlNDDab1EpHjsWa
1、请你自我介绍一下你自己?
回答提示:一般人回答这个问题过于平常,只说姓名、年龄、爱好、工作经验,这些在简历上都有。其实,企业最希望知道的是求职者能否胜任工作,包括:最强的技能、最深入研究的知识领域、个性中最积极的部分、做过的最成功的事,主要的成就等,这些都可以和学习无关,也可以和学习有关,但要突出积极的个性和做事的能力,说得合情合理企业才会相信。企业很重视一个人的礼貌,求职者要尊重考官,在回答每个问题之后都说一句“谢谢”,企业喜欢有礼貌的求职者。
A:各位考官好,我叫李永凯,大家可以称呼我阿凯;
我从湖南来到杭州,差不多有4年的时间了;
在这期间,我曾在 “杭州商聪信息技术有限公司” 和 “阿里巴巴 天猫-商家业务事业部” 就职过,主要从事前端开发工作。
工作当中,我能够很好的配合交互设计同学和开发同学;推动项目的完成。
我觉得,前端开发不是一项目简单的工作,它不仅仅只是几个 div、css和js,最重要的是做出来的产品能够给用户提供一个良好的操作体验;
今后的前端开发,更加不是一项简单的工作,它需要面对的是多个终端的开发,包括PC端、手机端以及平板,这方面将会是我今后的学习和发展方向;
2、你觉得你个性上最大的优点是什么?
回答提示:沉着冷静、条理清楚、立场坚定、顽强向上、乐于助人和关心他人、适应能力和幽默感、乐观和友爱。我经过一到两年的培训及项目实战,加上实习工作,使我适合这份工作。
3、说说你最大的缺点?
回答提示:这个问题企业问的概率很大,通常不希望听到直接回答的缺点是什么等,如果求职者说自己小心眼、爱忌妒人、非常懒、脾气大、工作效率低,企业肯定不会录用你。绝对不要自作聪明地回答“我最大的缺点是过于追求完美”,有的人以为这样回答会显得自己比较出色,但事实上,他已经岌岌可危了。企业喜欢求职者从自己的优点说起,中间加一些小缺点,最后再把问题转回到优点上,突出优点的部分,企业喜欢聪明的求职者。
4、你对加班的看法?
回答提示:实际上好多公司问这个问题,并不证明一定要加班,只是想测试你是否愿意为公司奉献。
回答样本:如果是工作需要我会义不容辞加班,我现在单身,没有任何家庭负担,可以全身心的投入工作。但同时,我也会提高工作效率,减少不必要的加班。
5、你对薪资的要求?
回答提示:如果你对薪酬的要求太低,那显然贬低自己的能力;如果你对薪酬的要求太高,那又会显得你分量过重,公司受用不起。一些雇主通常都事先对求聘的职位定下开支预算,因而他们第一次提出的价钱往往是他们所能给予的最高价钱,他们问你只不过想证实一下这笔钱是否足以引起你对该工作的兴趣。
回答样本一:我对工资没有硬性要求,我相信贵公司在处理我的问题上会友善合理。我注重的是找对工作机会,所以只要条件公平,我则不会计较太多。
回答样本二:我受过系统的软件编程的训练,不需要进行大量的培训,而且我本人也对编程特别感兴趣。因此,我希望公司能根据我的情况和市场标准的水平,给我合理的薪水。
回答样本三:如果你必须自己说出具体数目,请不要说一个宽泛的范围,那样你将只能得到最低限度的数字。最好给出一个具体的数字,这样表明你已经对当今的人才市场作了调查,知道像自己这样学历的雇员有什么样的价值。
6、在五年的时间内,你的职业规划?
回答提示:这是每一个应聘者都不希望被问到的问题,但是几乎每个人都会被问到,比较多的答案是“管理者”。但是近几年来,许多公司都已经建立了专门的技术途径。这些工作地位往往被称作“顾问”、“参议技师”或“高级软件工程师”等等。当然,说出其他一些你感兴趣的职位也是可以的,比如产品销售部经理,生产部经理等一些与你的专业有相关背景的工作。要知道,考官总是喜欢有进取心的应聘者,此时如果说“不知道”,或许就会使你丧失一个好机会。最普通的回答应该是“我准备在技术领域有所作为”或“我希望能按照公司的管理思路发展”。
7、你朋友对你的评价?
回答提示:想从侧面了解一下你的性格及与人相处的问题。
回答样本一:我的朋友都说我是一个可以信赖的人。因为,我一旦答应别人的事情,就一定会做到。如果我做不到,我就不会轻易许诺。
回答样本二:我觉的我是一个比较随和的人,与不同的人都可以友好相处。在我与人相处时,我总是能站在别人的角度考虑问题。
8、你还有什么问题要问吗?
回答提示:企业的这个问题看上去可有可无,其实很关键,企业不喜欢说“没问题”的人,因为其很注重员工的个性和创新能力。企业不喜欢求职者问个人福利之类的问题,如果有人这样问:贵公司对新入公司的员工有没有什么培训项目,我可以参加吗?或者说贵公司的晋升机制是什么样的?企业将很欢迎,因为体现出你对学习的热情和对公司的忠诚度以及你的上进心。
9、如果通过这次面试我们单位录用了你,但工作一段时间却发现你根本不适合这个职位,你怎么办?
回答提示:一段时间发现工作不适合我,有两种情况:①如果你确实热爱这个职业,那你就要不断学习,虚心向领导和同事学习业务知识和处事经验,了解这个职业的精神内涵和职业要求,力争减少差距;②你觉得这个职业可有可无,那还是趁早换个职业,去发现适合你的,你热爱的职业,那样你的发展前途也会大点,对单位和个人都有好处。
10、在完成某项工作时,你认为领导要求的方式不是最好的,自己还有更好的方法,你应该怎么做?
回答提示:①.原则上我会尊重和服从领导的工作安排,同时私底下找机会以请教的口吻,婉转地表达自己的想法,看看领导是否能改变想法。②如果领导没有采纳我的建议,我也同样会按领导的要求认真地去完成这项工作。③.还有一种情况,假如领导要求的方式违背原则,我会坚决提出反对意见,如领导仍固执己见,我会毫不犹豫地再向上级领导反映。
11、如果你的工作出现失误,给本公司造成经济损失,你认为该怎么办?
回答提示:①我本意是为公司努力工作,如果造成经济损失,我认为首要的问题是想方设法去弥补或挽回经济损失。如果我无能力负责,希望单位帮助解决。②分清责任,各负其责,如果是我的责任,我甘愿受罚;如果是一个我负责的团队中别人的失误,也不能幸灾乐祸,作为一个团队,需要互相提携共同完成工作,安慰同事并且帮助同事查找原因总结经验。③总结经验教训,一个人的一生不可能不犯错误,重要的是能从自己的或者是别人的错误中吸取经验教训,并在今后的工作中避免发生同类的错误。检讨自己的工作方法、分析问题的深度和力度是否不够,以致出现了本可以避免的错误。
12、如果你做的一项工作受到上级领导的表扬,但你主管领导却说是他做的,你该怎样?
回答提示:我首先不会找那位上级领导说明这件事,我会主动找我的主管领导来沟通,因为沟通是解决人际关系的最好办法,但结果会有两种:①我的主管领导认识到自己的错误,我想我会视具体情况决定是否原谅他。②他更加变本加厉的来威胁我,那我会毫不犹豫地找我的上级领导反映此事,因为他这样做会造成负面影响,对今后的工作不利。
13、谈谈你对跳槽的看法?
回答提示:①正常的“跳槽”能促进人才合理流动,应该支持。②频繁的跳槽对单位和个人双方都不利,应该反对。
14、工作中你难以和同事、上司相处,你该怎么办?
回答提示:①我会服从领导的指挥,配合同事的工作。②我会从自身找原因,仔细分析是不是自己工作做得不好让领导不满意,同事看不惯。还要看看是不是为人处世方面做得不好,如果是这样的话我会努力改正。③如果我找不到原因,我会找机会跟他们沟通,请他们指出我的不足,有问题就及时改正。④作为优秀的员工,应该时刻以大局为重,即使在一段时间内,领导和同事对我不理解,我也会做好本职工作,虚心向他们学习,我相信,他们会看见我在努力,总有一天会对我微笑的。
15、假设你在某单位工作,成绩比较突出,得到领导的肯定。但同时你发现同事们越来越孤立你,你怎么看这个问题?你准备怎么办?
回答提示:①成绩比较突出,得到领导的肯定是件好事情,以后更加努力。②检讨一下自己是不是对工作的热心度超过同事间交往的热心了,加强同事间的交往及共同的兴趣爱好。③工作中,切勿伤害别人的自尊心④不再领导前拨弄是非。
16、你最近是否参加了培训课程?谈谈培训课程的内容。是公司资助还是自费参加?
回答提示:自费参加,就是北大青鸟的培训课程(可以多谈谈自己学的技术)。
17、你对于我们公司了解多少?
回答提示:在去公司面试前上网查一下该公司主营业务。如回答:贵公司有意改变策略,加强与国外大厂的OEM合作,自有品牌的部分则透过海外经销商。
18、请说出你选择这份工作的动机?
回答提示:这是想知道面试者对这份工作的热忱及理解度,并筛选因一时兴起而来应试的人,如果是无经验者,可以强调“就算职种不同,也希望有机会发挥之前的经验”。
19、你最擅长的技术方向是什么?
回答提示:说和你要应聘的职位相关的课程,表现一下自己的热诚没有什么坏处。
20、你能为我们公司带来什么呢?
回答提示:①假如你可以的话,试着告诉他们你可以减低他们的费用——“我已经接受过北大青鸟近两年专业的培训,立刻就可以上岗工作”。②企业很想知道未来的员工能为企业做什么,求职者应再次重复自己的优势,然后说:“就我的能力,我可以做一个优秀的员工在组织中发挥能力,给组织带来高效率和更多的收益”。企业喜欢求职者就申请的职位表明自己的能力,比如申请营销之类的职位,可以说:“我可以开发大量的新客户,同时,对老客户做更全面周到的服务,开发老客户的新需求和消费。”等等。
21、最能概括你自己的三个词是什么?
回答提示:我经常用的三个词是:适应能力强,有责任心和做事有始终,结合具体例子向主考官解释,
22、你的业余爱好是什么?
回答提示:找一些富于团体合作精神的,这里有一个真实的故事:有人被否决掉,因为他的爱好是深海潜水。主考官说:因为这是一项单人活动,我不敢肯定他能否适应团体工作。
23、作为被面试者给我打一下分?
回答提示:试着列出四个优点和一个非常非常非常小的缺点(可以抱怨一下设施,没有明确责任人的缺点是不会有人介意的)。
24、你怎么理解你应聘的职位?
回答提示:把岗位职责和任务及工作态度阐述一下。
25、喜欢这份工作的哪一点?
回答提示:相信其实大家心中一定都有答案了吧!每个人的价值观不同,自然评断的标准也会不同,但是,在回答面试官这个问题时可不能太直接就把自己心理的话说出来,尤其是薪资方面的问题,不过一些无伤大雅的回答是不错的考虑,如交通方便,工作性质及内容颇能符合自己的兴趣等等都是不错的答案,不过如果这时自己能仔细思考出这份工作的与众不同之处,相信在面试上会大大加分。
26、为什么要离职?
回答提示:①回答这个问题时一定要小心,就算在前一个工作受到再大的委屈,对公司有多少的怨言,都千万不要表现出来,尤其要避免对公司本身主管的批评,避免面试官的负面情绪及印象。建议此时最好的回答方式是将问题归咎在自己身上,例如觉得工作没有学习发展的空间,自己想在面试工作的相关产业中多加学习,或是前一份工作与自己的生涯规划不合等等,回答的答案最好是积极正面的。②我希望能获得一份更好的工作,如果机会来临,我会抓住。我觉得目前的工作,已经达到顶峰,即没有升迁机会。
27、说说你对行业、技术发展趋势的看法?
回答提示:企业对这个问题很感兴趣,只有有备而来的求职者能够过关。求职者可以直接在网上查找对你所申请的行业部门的信息,只有深入了解才能产生独特的见解。企业认为最聪明的求职者是对所面试的公司预先了解很多,包括公司各个部门,发展情况,在面试回答问题的时候可以提到所了解的情况,企业欢迎进入企业的人是“知己”,而不是“盲人”。
28、对工作的期望与目标何在?
回答提示:这是面试者用来评断求职者是否对自己有一定程度的期望、对这份工作是否了解的问题。对于工作有确实学习目标的人通常学习较快,对于新工作自然较容易进入状况,这时建议你,最好针对工作的性质找出一个确实的答案,如业务员的工作可以这样回答:“我的目标是能成为一个超级业务员,将公司的产品广泛的推销出去,达到最好的业绩成效;为了达到这个目标,我一定会努力学习,而我相信以我认真负责的态度,一定可以达到这个目标。”其他类的工作也可以比照这个方式来回答,只要在目标方面稍微修改一下就可以了。
29、说你的家庭?
回答提示:企业面试时询问家庭问题不是非要知道求职者家庭的情况,探究隐私,企业不喜欢探究个人隐私,而是要了解家庭背景对求职者的塑造和影响。企业希望听到的重点也在于家庭对求职者的积极影响。企业最喜欢听到的是:我很爱我的家庭,我的家庭一向很和睦,虽然我的父亲和母亲都是普通人,但是从小,我就看到我父亲起早贪黑,每天工作特别勤劳,他的行动无形中培养了我认真负责的态度和勤劳的精神。我母亲为人善良,对人热情,特别乐于助人,所以在单位人缘很好,她的一言一行也一直在教导我做人的道理。企业相信,和睦的家庭关系对一个人的成长有潜移默化的影响。
30、就你申请的这个职位,你认为你还欠缺什么?
回答提示:企业喜欢问求职者弱点,但精明的求职者一般不直接回答。他们希望看到这样的求职者:继续重复自己的优势,然后说:“对于这个职位和我的能力来说,我相信自己是可以胜任的,只是缺乏经验,这个问题我想我可以进入公司以后以最短的时间来解决,我的学习能力很强,我相信可以很快融入公司的企业文化,进入工作状态。”企业喜欢能够巧妙地躲过难题的求职者。
31、你欣赏哪种性格的人?
回答提示:诚实、不死板而且容易相处的人、有“实际行动”的人。
32、你通常如何处理别人的批评?
回答提示:①沈默是金,不必说什么,否则情况更糟,不过我会接受建设性的批评。②我会等大家冷静下来再讨论。
33、怎样对待自己的失败?
回答提示:我们大家生来都不是十全十美的,我相信我有第二个机会改正我的错误。
34、什么会让你有成就感?
回答提示:为贵公司竭力效劳,尽我所能,完成一个项目。
35、眼下你生活中最重要的是什么?
回答提示:对我来说,能在这个领域找到工作是最重要的,能在贵公司任职对我说最重要。
36、你为什么愿意到我们公司来工作?
回答提示:对于这个问题,你要格外小心,如果你已经对该单位作了研究,你可以回答一些详细的原因,像“公司本身的高技术开发环境很吸引我。”、“我同公司出生在同样的时代,我希望能够进入一家与我共同成长的公司。”、“你们公司一直都稳定发展,在近几年来在市场上很有竞争力。”、“我认为贵公司能够给我提供一个与众不同的发展道路。”这都显示出你已经做了一些调查,也说明你对自己的未来有了较为具体的远景规划。
37、你和别人发生过争执吗?你是怎样解决的?
回答提示:这是面试中最险恶的问题,其实是考官布下的一个陷阱,千万不要说任何人的过错,应知成功解决矛盾是一个协作团体中成员所必备的能力。假如你工作在一个服务行业,这个问题简直成了最重要的一个环节。你是否能获得这份工作,将取决于这个问题的回答。考官希望看到你是成熟且乐于奉献的。他们通过这个问题了解你的成熟度和处世能力。在没有外界干涉的情况下,通过妥协的方式来解决才是正确答案。
38、问题:你做过的哪件事最令自己感到骄傲?
回答提示:这是考官给你的一个机会,让你展示自己把握命运的能力。这会体现你潜在的领导能力以及你被提升的可能性。假如你应聘于一个服务性质的单位,你很可能会被邀请去午餐。记住:你的前途取决于你的知识、你的社交能力和综合表现。
39、新到一个部门,一天一个客户来找你解决问题,你努力想让他满意,可是始终达不到群众得满意,他投诉你们部门工作效率低,你这个时候怎么作?
回答提示:(1)首先,我会保持冷静。作为一名工作人员,在工作中遇到各种各样的问题是正常的,关键是如何认识它,积极应对,妥善处理。 (2)其次,我会反思一下客户不满意的原因。一是看是否是自己在解决问题上的确有考虑的不周到的地方,
以上是关于Web前端相关面试题的主要内容,如果未能解决你的问题,请参考以下文章