下面是一位同学整理的文思海辉前端面试题,整理上来供大家参考。
1.把一个字符串的各项反转顺序。
function strReverse(str) {
var a = str.split('');
var str1 = a.reverse().toString();
return str1;
}
var str = '123456';
console.log(strReverse(str)); //输出结果是6,5,4,3,2,1
alert(typeof strReverse(str)); //输出结果是string
2.写一个时间转换例子。
function time(num) {
var num = Math.floor(num / 60) + ':' + num % 60;
return num;
}
console.log(time(63)) //输出结果是1:3
3.介绍作用域和闭包并且写一个闭包程序。
function fn() {
return function(i) {
return i;
}
}
alert(fn()(6)) //输出结果是6
4.比如有10个button,每点击一个button,弹出响应的索引号。
var oBtn = document.getElementsByTagName('input');
for (var i = 0; i < oBtn.length; i++) {
oBtn.item(i).onclick = (function(i) {
return function() {
alert(i);
}
})(i);
}
5.给出一段程序,判断输出结果。
function fn(a) {
return function(b) {
return a + b;
}
}
var x = fn(5);
var x = fn(4);
var y = fn(7);
console.log(x(1)); //输出结果是5
console.log(x(3)); //输出结果是7
console.log(y(1)); //输出结果是8
6.关于递归让写一个例子,还没答完,就问我别的题了。
7.关于继承问题老师给的面试题上面就有这样例子。
function SuperType(name) {
this.name = name;
this.teachers = ['耿老师', '林老师'];
}
SuperType.prototype.sayName = function() {
alert(this.name);
}
function SubType(name, address) {
SuperType.call(this, name);
this.address = address;
}
//继承
SubType.prototype = new SuperType();
SubType.prototype.constructor = SubType;
SubType.prototype.sayAddress = function() {
alert(this.address);
};
var instance1 = new SubType('珠峰培训', '西苑');
instance1.teachers.push('刘老师');
alert(instance1.teachers); //'耿老师','林老师','刘老师'
instance1.sayName(); //'珠峰培训'
instance1.sayAddress(); //'西苑'
var instance2 = new SubType('zhufengpeixun', '西苑');
alert(instance2.teachers); //'耿老师','林老师'
instance2.sayName(); //'zhufengpeixun'
instance2.sayAddress(); //'西苑'
8.css盒子模型在FF和IE中的区别。
9.描述下什么是MVC。