几道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();