(面试2)前端面试题2

1、请描述下面选择器的含义:
div#idSel
div .classSel
div.classSel
div>.classSel
div+.classSel
div~.classSel
input[type=“button”]

2、请说明CSS优先级的判断法则

3、下图中,说明了每个div(display为block)对象的position值,指出下列所有元素的包含块。并描述你对css中绝对定位,相对定位,固定定位等定位方法的了解。

4、简述一下JavaScript中,apply、call与bind的用法、区别,以及他们与this的关系。

5、请回答如下3端代码的this指向什么?为什么?

<input id="name" type="text" name="name" value="Laruence" onclick="alert(this.value);" />
<input id="name" type="text" name="name" value="Laruence" />

function showValue() {
     alert(this.value);
}
document.getElementById('name').onclick = showValue;
function showValue() {
     alert(this.value);
}
<input id="name" type="text"  name="name" value="Laruence"  onclick="showValue()"/>

6、写出如下javascript的运行结果

var name = 'laruence';
function echo() {
alert(name);
var name = 'eve';
alert(name);
alert(age);
}
echo();

7、请写出下列代码的的执行结果和原因。

var z = 10;

function foo() {
    console.log(z);
}

(function () {
    var z = 20;
    foo();
})();

z = 30;
foo();

(function (funArg) {
    var z = 40;
    funArg();
})(foo);

8、请看如下代码,写出程序执行的结果以及原因。

var FUN = function () {
    function a() { console.log('a1'); };
    function b() { console.log('b1'); };
    function c() { console.log('c1'); };
    var a = function() { console.log('a2'); };
    var b = function() { console.log('b2'); };
    var c = function() { console.log('c2'); };
};
Object.prototype.a = function () { console.log('a3'); };
Function.prototype.b = function () { console.log('b3'); }
FUN.prototype.c = function () { console.log('c3'); }
var fun = new FUN();
fun.a();
fun.b();
fun.c();
FUN.a();
FUN.b();
FUN.c();

9、题目:我们都知道Fibonacci数列如下:1,1,2,3,5,8,13,21,34,…
数学定义Fibonacci数列如下:
/ 0 n=0
f(n)= 1 n=1
\ f(n-1)+f(n-2) n=2
输入n,用最快的方法求该数列的第n项。

10、讲讲你对面向对象编程的理解,并简述一下前端编程中可以如何实现面向对象的类。
面向对象编程是在一个类中放置多用解决方法,当程序有需求时,则调用类中的方法进行解决;类似于es6中class类中的构造函数定义,且构造函数中含有原型链。

**11、请简述您对跨浏览器WEB前端开发的认识,以及方法。

12、请列出你所熟悉的CSS预处理器,并简述其工作原理。

13、请列出Javascript前端开发方面你所知道的性能优化方式。**

智力选作题:(选作任意多个题目)
14、有两位盲人,他们都各自买了两对黑袜和两对白袜,八只袜了的布质、大小完全相同,而每对袜了都有一张商标纸连着,商标手感一样。两位盲人不小心将四对袜了混在一起。他们每人怎样才能取回黑袜和白袜各两对呢?

15、有许多根长短不同,粗细不均匀的绳子,只知道每根绳子都要烧要一个小时才烧完,如何用两根绳子燃烧的时间,算出45分钟来呢?

16、你有四人装药丸的罐子,每个药丸都有1克,被污染的药丸是2克,有一个药罐被污染,用秤(不是天平秤)只称量一次,如何判断哪个罐子的药被污染了?

17、请把一盒蛋糕切成8份,分给8个人,但蛋糕盒里还必须留有一份。