您的位置:首页 > Web前端

阿里巴巴2015实习生招聘 - 前端笔试题

2015-09-26 18:14 344 查看
前记:我没有参加阿里巴巴的前端笔试,至于原因==,就不说了。。现在为了参加百度的前端笔试,整理一下阿里的题目


1.数组的属性的考察,splice且切片arr.splice();

请选择以下语句的正确运行结果:
var a = [1,2,3];
a.splice(1,1,2,3,4);
console.log(a);


我的答案:[1,2,3,4,3],我的思路:splice(起始位置,结束位置,后序插入的元素1,插入元素位置2...)


正确答案:[1,2,3,4,3],哈哈,我是对的,不过我的解释错了!splice(起点,长度)/(起点,0,待插元素)/(起点,长度,替换元素)
补充:其实(起点,0,待插元素)只是(起点,长度,替换元素)的特例啦

1.一个参数
splice(起点位置);  //默认删除到最后
eg :
var a = [1,2,3];
a.splice(1) ;// a就变成[1]
a.splice(-1); //返回的是[3],a变成[1,2]
a.splice(-2) ; //返回的是[2,3],a变成[1]
//当起点位置 <= -a.length的时候,全部返回
a.splice(-3) ; //返回的是[1,2,3],a变成[]
2.两个参数
splice(起始位置,长度)
eg :
var a = [1,2,3];
a.splice(0,2);  //返回的是[1],a变成[2,3]
//当长度大于等于 arr.length - 起点位置 时,则默认切到最后
a.splice(1,10); //返回的是[2,3],a变成[1]
//当长度 <= 0 时,则返回的是空数组[]
a.splice( 1,0 ); //返回的是[],a为[1,2,3]
3.三个及以上参数
splice(起始位置,长度,替换元素1,替换元素2,替换元素3...)
var a = [1,2,3];
a.splice( 1,2 , 77);  //返回的是[2,3],a变成[1,77]


解析:数组属性
属性:
    
var a = [1,2,3];
a.length
可以对a.length进行赋值
eg:a.length = 2 => a = [1,3](当a.length设为0时,即可清空数组)
(1)数组元素添加:
  i.从尾部添加:a.push(33);
ii.从头部添加:a.unshift(33);
(2)数组元素删除:
i.从尾部删除:a.pop();
ii.从头部删除:a.shift();
(3).数组的切片:splice
a.连续删除元素:splice (起点,长度)
eg: var a = [1,2,3,4,5,6];
a.splice(1,2) =>a = [1,4,5,6]
b.插入元素:splice(起点,0,待插元素)
eg: var a = [1,2,3,4,5,6];
a.splice(1,0,9,7) => a = [1,9,7,2,3,4,5,6];
c.替换元素:splice (起点,长度,替换元素)
eg: var a = [1,2,3,4,5,6];
a.splice(2,2,"a"); => a =[1,2,a,5,6];
e.数组元素的连接: join
eg: var a = [1,2,3,4];
a.join('-') => '1-2-3-4'
f.排序;sort(参数) (参数为函数,即比较函数)
(1)从小到大
eg: var a = [4,2,1];
a.sort(function(n1,n2){return n1-n2;}) => a = [1,2,4]
(2)从大到小
eg: var a = [4,2,1];
a.sort(function(n1,n2){return n2-n1;}) => a = [4,2,1]
g.数组连接:concat
eg:    var a = [1,6,3];
var b = ["dd","ff"];
var c = a.concat(b); => c = [1,6,3,"dd","ff"]
var d = b.concat(a); => d = ["dd","ff",1,6,3]
注: 数组 a 和 b 不变


2.关于XSS,下列说法正确的是:

a.XSS的全称是Cross site script

b.CSRF是xss的一种

c.从cookie中获取用户名并输出到页面的过程不会导致XSS

d.xss都是因为后端未对数据做安全检查造成的

正确答案是:a XSS: cross site script跨域脚本攻击,重点是 跨域 和 客户端执行。
XSS攻击包括:(1)Reflected XSS,基于反射的XSS攻击,主要依靠站点服务端返回脚本,那么返回的页面自然也会返回这段脚本,从而执行它。
(2)DOM-based or local XSS,基于DOM或本地的XSS攻击
(3)Stored XSS,基于存储的XSS攻击
对于XSS攻击的预防策略是: 对提交数据的过滤,另外还有一点是谨慎返回用户提交的内容。

b: CSRF( cross-site request forgery/跨站请求伪造),CSRF与XSS非常相似,但XSS是利用用户对当前网站的信任来发起攻击,而CSRF是利用网站对用户的信任来发起攻击。
对于CSRF攻击的对付策略有:
(1)检查报头中的Referer参数确保请求发自正确的网站(但是XHR请求可调用setRequestHeader方法来修改Referer报头)
(2)对于任何重要的请求都需要重新验证用户的身份;
(3)创建一个唯一的令牌(Token),将其存在服务器端的session中及客户端的cookie中,对任何请求,都检查二者是否一致。


3.变量声明提前及this,作用域的考察

function delCookie(name)
{
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval=getCookie(name);
if(cval!=null)
{
document.cookie= name + "="+ cval+ ";expires="+exp.toGMTString();
}
}


View Code
12.给出css,添加css完成一个样式设置,

13.编写一个js函数,parseQueryString,它的用途是把url参数解析为一个对象,例如:

var url = http : //witmax.cn/index.php?key=0&key1=1&key2=2
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: