下面是一位同学整理的文思海辉前端面试题,整理上来供大家参考。
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。