那些奇葩的面试题

1.闭包:闭包就是能够读取其他函数内部变量的函数

          作用:(1).可以将局部作用域ii的局部变量,返回给全局,让全局可以访问到这个变量。

function f1(){
n=999;
function f2(){
alert(n);
}
return f2; }
var result=f1();
result(); // 999

                   (2).可以再循环中保留i值。

for ( var i = 0 ; i < aLi . length ; i ++){

    ( function ( i ){
         //预处理事件
         aLi [ i ]. onclick  =  function (){
             alert ( i )
        }
    })( i )
}

           缺点:(1).消耗性能:因为闭包它不会自动被销毁会在内存中一直占用,所以会非常耗费性能。

    (2). 同时在IE浏览器下可能会造成内存溢出 当不用闭包的时候要将其摧毁,解决方法是,在退出函数之前,将不使用的局部变量全部删除。这就用到了垃圾回收机制了。


2.垃圾回收机制:

 当一个函数运行完毕以后,如果内部的变量或者方法没有在外部(全局)进行调用的话,这个函数就会被立即销毁 下次在调用的时候里面所有的变量都会进行重置 如果当前函数的变量或者方法在全局进行了调用的话,那么这个函数不会被销毁而是一直在内存中存在 

例:

  function fn(){
            var a = 10;
            return function(){
                return a;
            }
        }
        var b = fn();
        var c = b();
        console.log(c);//10
        b = function(){
                return a;
            }

3.工厂模式

4.设计模式

5.流布局

6.改变this指向的方法

7.继承的集中方式

8.如何保留i值

猜你喜欢

转载自www.cnblogs.com/yunshangwuyou/p/9547935.html