2016之web前端面试题,最全最有用

1、请写出以下几个alert的值:

var a =100;

function fn(){

alert(a);

var a = 200;

alert(a);

}

fun();

alert(a);

var a;

alert(a)

var a = 300;

alert(a)


2、请写出以下程序的输出

var obj1 = {

name:'obj1' ,

fn:function(){

document.write(this.name)

}};

var obj2 = {name:'obj2'};

var obj3 = {name:'obj3'};

obj1.fn();

var newFn = obj1.fn;

newFn();

newFn.call(obj2);

obj3.fn = newFn;

obj3.fn();


3、一个数组par中存放多个人员信息,每个人员的信息由年龄age和姓名name组成,如{age:2 ,name:'xx'}   请写一段js程序,对这个数组按年龄从小到大进行排序。


4、有字符串var str = 'abc345efgabcab',请写出3条js语句分别实现如下3个功能:

1)、去掉字符串中的a、b、c字符,形成结果:‘345efg’

2)、将字符中的数字用中括号括起来,形成结果:‘abc[3][4][5]efgabcab’

3)、将字符串中的每个数字乘以2,形成结果:‘abc6810efgabcab’


5、请写一段js程序,定义一个列表类List,改类包括两个成员:属性length(表示列表中的元素个数)和方法add(向列表添加元素),其中要求构造函数和add方法的参数为动态参数。


6、请问以下js程序有什么问题?应该如何优化?

function setStyle(element){

element.stype.fontWeight = 'bold';

element.stype.color = '#000000'

}


7、请写出一个正则表达式:

1)匹配一个全部是数字的字符串

2)提取出一个url所使用的协议类型http、ftp等和host名称


8、请使用闭包的方式,写一段js程序实现如下功能:函数每调用一次则改函数的返回值加1(注:要求使用es6新技术)


9、请写出下面js程序中几个document.write的结果:

function Parent(){

this.a = 1;

this.b = [1,2,this.a];

this.c = {dome:5};

this.show = function(){

document.write(this.a+''+this.c.demo+':'+this.b+'<br>')

}

}

function Child(){

this.a = 2;

this.change = function(){

this.a= this.b.length;

this.c.demo = this.a++;

}

}

Child.prototype = new Parent();

var parent = new Parent();

var child1 = new Child();

var child2 = new Child();

child1.a = 11;

child2.a = 12;

parent.show();

child1.show();

child2.show();

child1.change();

child2.change();

parent.show();

child1.show();

child2.show();


10、请简述对MVC的理解,并列举一些MVC架构的js框架。


11、请用js程序实现二分查找算法。


12、有这样一个URL:http://vip.qq.com/a.php?a=1&b=2&c=&d=xxx&e,请写一段JS程序提取URL的各个GET参数(参数名和参数个数不确定),将其按key-value形式返回到一个json结构中,如{a:'1' , b:'2' ,c:'' , d:'xxx' , e:undefined}


13、xss原理是什么?怎么防御呢?请写出一个攻击和防御的例子。CSRF和hash碰撞攻击原理是什么,怎么防范。


14、请列举前端可以采取的常见优化方式。


15、请列举你所了解的跨域实现方法


持续更新中。。。。。。

你可能感兴趣的:(web前端,面试题)