面试总结

来源:互联网 发布:centos 安装 分区 编辑:程序博客网 时间:2024/06/13 17:56
1.var fn=function a(){
        alert(a);
    };
    fn();//function a(){alert(a);}
    alert(a);//a is not defined;
**************
考的是函数表达式和函数声明的区别,表达式不会提前,只会在赋值时候声明,由赋值符左操作数调用执行。**************
2.var a=1;
    function fn(){
        a=b=2;
    }
    fn();
    alert(a);//2
    alert(b);//2
**************
a还好就是函数内直接改变全局变量的值,主要是b,如果严格模式会出错,否则就是相当于没有var的声明的b直接定义,为全局变量。
**************
3.function a(){
        console.log("function a");
    }
    var a;
    console.log(a);//function a(){ console.log("function a"); }
**************
变量声明提前,var a;提到最前面,然后声明了函数a,所以就是输出该函数。
**************
4.function test(){
        var a=1;
        setTimeout(function(){
            alert(a);
            a=3;
        },0);
        a=2;
        setTimeout(function(){
            alert(a);
            a=4;
        },3000);
    }
    test();
    alert(0);
**************
结果是:0 ,2, 3
当调用test的时候里面的alert都是在时间间隔内部,所以会先放到一个时间间隔的队列,之后会接在js执行队列的末尾,所以js正常执行顺序的程序先执行。如果test内部有js的顺序执行的内容也会按顺序先执行。
**************
5.var a=1;
    obj={b:2};
    function fn(){}
    fn.c=3;
    function change(x,y,z){
        x=4;
        y.b=5;
        z.c=6;
        return z;
    }
    change(a,obj,fn);
    console.log(a,obj.b,fn.c);//12
**************
change函数的三个参数x,y, z 分别对应的是a  ,obj ,fn, a是基本数据类型,所以x相当于1传入,基本类型不会改变,obj和fn都是引用类型,所以传入的是引用,则对其属性改变,引用就会改变,所以就是1+5+6=12的结果。
**************
6.js判断对象类型的方法和优缺点
**typeof   不能细分出具体是什么object,基本类型可以。
**instanceof  必须实例才可以判断,基本类型不可以。
**Object.prototype.toString.call();可以较详细的判断出来,null和undefined分不出来(Null),NaN和Number分不出来(Number),[object,Number/Boolean/String/Object/Array/Function/Date/Null]
7.典型的js闭包问题,嵌套了三层fun函数,搞清楚每层fun是哪个fun函数
  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,0,0,0
    var b = fun(0).fun(1).fun(2).fun(3);//undefined,0,1,2
    var c = fun(0).fun(1); c.fun(2); c.fun(3);//undefined,0,1,1

0 0
原创粉丝点击