第一部分:送分题
1、简单叙述一下闭包的概念,闭包用在什么地方。
2、实现一一布局:左列固定,右列自适应。
3、`BFC`(Block Formatting Context)。
4、写出6个以上常用的标签,并注明用法。
5、列举出所有能让一个元素看不到的CSS属性。
6、移动端布局的方式有哪些?
第二部分:JS题
1、如下:
var length = 10; function fn(){ alert(this.length); } var obj={ length:5, method:function(fn){ fn(); //输出多少? arguments[0](); //输出多少? } }
obj.method(fn);
2、如下:
[('5'+3),('5'-3)]的值:
A:['53',2] B:[8,2] C:报错 D:其他
3、如下:
[1<2<3,3<2<1]的值:
A:[true,true] B:[true,false] C:报错 D:其他
4、下面代码会输出什么结果。
function Foo(){ getName = function () {alert(1);} return this; } Foo.getName = function() {alert(2);}; Foo.prototype.getName = function(){alert(3);}; var getName = function(){alert(4);}; function getName(){alert(5)}; Foo.getName(); getName(); Foo().getName(); getName(); new Foo.getName(); new Foo().getName(); new new Foo().getName();
5、如下:
function fun(n,o){ console.log(o); return { fun:function(m){ return fun(m,n) } } } var a=fun(0); a.fun(1); a.fun(2); a.fun(3); //undefined,?,?,? var b=fun(0).fun(1).fun(2).fun(3); //undefined,?,?,?
var c=fun(0).fun(1); c.fun(2); c.fun(3); //undefined,?,?,?
请问,三行a,b,c的输出分别是什么?
6、说说对于MVC与MVVM的理解。
第三部分:附加题
1、请简单描述undefined、null、NaN和undeclared各自的区别。
2、如何实现下列代码:
[1,2,3,4,5].deplicator(); //返回[1,2,3,4,5,1,2,3,4,5]
3、如何实现下列代码:
var o={
a:{
b:{
c:11
}
},
b:2
};
Object.prototype.hash=function(attr){
//TODO:完成该方法;
}
o.hash('a.b.c'); //输出11
a:{
b:{
c:11
}
},
b:2
};
Object.prototype.hash=function(attr){
//TODO:完成该方法;
}
o.hash('a.b.c'); //输出11