日期:2014-05-16  浏览次数:20270 次

几道js笔试题
/*对象引用*/
function tr42() {
    var a2, b2;
    a2 = {
        "c": 1
    };
    b2 = a2;
    a2.c = 2;
    alert(b2.c); // 2
    a2 = {
        "c": 3
    };
    alert(b2.c); // 2
    a2.c = 4;
    alert(b2.c); // 2
}

tr42();
/*setTimeout,js单线程,alert阻塞原理*/
2.下面代码alert的内容
function tc51() {
    var a2 = 6;
    window.setTimeout((function() {
        alert(a2); // 66
        a2 = 666;
    }), 1000);

    a2 = 66;
    window.setTimeout((function() {
        alert(a2); // 666
    }), 3000);
}

tc51();
/*apply,call 代码阅读能力*/
3.请阐述代码的功能,
代码的优点和缺点.listener.apply(el)在此处的作用.如果有可改进之处,请给出改进后的代码,并说明理由。
if (window.addEventListener) {
    var addListener = function(el, type, listener, useCapture) {
        el.addEventListener(type, listener, useCapture);
    };
} else if (document.all) {
    addListener = function(el, type, listener) {
        el.attachEvent("on" + type,
        function() {
            listener.apply(el);
        });
    };
}
/*变量声明提升 作用域链*/
function ts61() {
    try {
        i = 2;
        throw Error("error message!");
    } catch(err) {
        var i = 1;
        alert(err.message);
    }
    alert(i);
    alert(window.i);
    alert(window.err);
    alert(err.message);
}

ts61();