怎么提升公共英語二級聽力
1 請實現(xiàn),鼠標(biāo)點擊頁面中的任意標(biāo)簽,alert該標(biāo)簽的名稱.(注意兼容性)

2 請指出一下代碼的性能問題,并經(jīng)行優(yōu)化。
var info="騰訊拍拍網(wǎng)(www.paipai.com)是騰訊旗下知名電子商務(wù)網(wǎng)站。";
info +="拍拍網(wǎng)于2005年9月12日上線發(fā)布,";
info +="2006年3月13日宣布正式運(yùn)營,";
info +="是目前國內(nèi)第二大電子商務(wù)平臺。";
info=info.split(",");
for(var i=0; i
{
alert(info[i]);
}
這題初看純屬折騰,因為后面要根據(jù)逗號分隔再alert每項,何不構(gòu)造一個數(shù)組對象來存放文本內(nèi)容,而要用個臨時變量info才存放。
如var info=["騰訊拍拍網(wǎng)(www.paipai.com)是騰訊旗下知名電子商務(wù)網(wǎng)站。","拍拍網(wǎng)于2005年9月12日上線發(fā)布,","2006年3月13日宣布正式運(yùn)營,","是目前國內(nèi)第二大電子商務(wù)平臺。"] ?墒呛髞硐肴绻莾(yōu)化的話這個題目就出的沒意義了。
仔細(xì)觀察info這個變量,發(fā)現(xiàn)它每次都要自加字符串,如果字符串很大的又很多的話會非常影響性能的。
對于js中的string類型,屬于基本類型,因此一般情況下他們是存放在棧上的。如果字符串很大,info會每次變成一個很長的字符串,會很慢。
如果用引用類型數(shù)組來存放則好很多,如:
var temp=[];
temp.push("騰訊拍拍網(wǎng)(www.paipai.com)是騰訊旗下知名電子商務(wù)網(wǎng)站。");
/pic/p>
temp.push("拍拍網(wǎng)于2005年9月12日上線發(fā)布,");
temp.push("2006年3月13日宣布正式運(yùn)營,");
temp.push("是目前國內(nèi)第二大電子商務(wù)平臺。");
temp.join("");
alert(temp);
最后一招temp.join(“”)搞定。對處理大字符串連接問題都可以采取這種思路。
3 請給出異步加載js方案,不少于兩種。
異步加載方式:
(1) defer,只支持IE
(2) async:html5中script標(biāo)簽才有的屬性
(3) 創(chuàng)建script,插入到DOM中,加載完畢后callBack,見代碼:
function loadScript(url, callback){
var script = document.createElement("script")
script.type = "text/javascript";
if (script.readyState){ /pic/p>
script.onreadystatechange = function(){
if (script.readyState == "loaded" ||
script.readyState == "complete"){
script.onreadystatechange = null;
callback();
}
};
} else { /pic/p>
script.onload = function(){
callback();
};
}
script.src = url;
document.body.appendChild(script);
}
4 請寫出jQuery綁定事件的方法,不少于兩種。
$("#obj").click(function(){});
$("#obj").change(function(){});
$("#obj").bind("click",function(){});
$("#obj").live("submit",function(){});
5 請設(shè)計一套方案,用于確保頁面中JS加載完全。
var n = document.createElement("script");
n.type = "text/javascript";
/pic/p>
/pic/p>
if(ua.ie){
n.onreadystatechange = function(){
var rs = this.readyState;
if('loaded' === rs || 'complete'===rs){
n.onreadystatechange = null;
f(id,url); /pic/p>
}
};
/pic/p>
/pic/p>
n.addEventListener('load',function(){
f(id,url);
});
/pic/p>
/pic/p>
/pic/p>
}else{
n.onload = function(){
f(id,url);
};
}
6 請優(yōu)化某網(wǎng)頁的加載速度。
7 對string對象經(jīng)行擴(kuò)展,使其具有刪除前后空格的方法。
String.prototype.trim =function(){
return this.replace(/(^\s*)|(\s*$)/g,'');
}
8 完成一個正則表達(dá)式,驗證用戶輸入是否身份證號碼。
var Expression=/\d{17}[\d|X]|\d{15}/;
var objExp=new RegExp(Expression);
一道騰訊js面試題
題目如下:
f = function() {return true;};
g = function() {return false;};
(function() {
if (g() && [] == ![]) {
f = function f() {return false;};
function g() {return true;}
}
})();
alert(f()); /pic/p>
按網(wǎng)友的描述猜測,這應(yīng)該是QQ招聘的題目,既考查了ECMAScript知識,又需要被面試者的應(yīng)用實踐,題目本身無標(biāo)準(zhǔn)答案,在不同瀏覽器下表現(xiàn)不同。
這是一道難度較大,并且出題角度比較刁鉆的面試題。
正趕上最近在研究Javascript這部分的內(nèi)容,便對該題目涉及的考察點進(jìn)行了更深入的研究。以下給出簡單分析。
考察點
對作用域鏈(scope chain)、執(zhí)行環(huán)境(execution context)、變量對象(variable object)的理解
命名函數(shù)表達(dá)式,參見這里
以上知識點在不同瀏覽器(主要為:IE和Firefox)的實現(xiàn)差異
相等操作符的隱式類型轉(zhuǎn)換規(guī)則
首先,代碼簡化為(1):
f = function() {return true;};
g = function() {return false;};
(function() {
alert(g());
function g() {return true;}
})();
上面的例子中,當(dāng)控制器進(jìn)入匿名函數(shù)的執(zhí)行環(huán)境后,初始化活動對象,函數(shù)聲明g被放到了執(zhí)行環(huán)境的變量對象集合中,property為g,值為g函數(shù)對象,當(dāng)執(zhí)行g(shù)(),返回true。
將上面的代碼稍加改變(2):
f = function() {return true;};
g = function() {return false;};
(function() {
alert(g());
if (true) {
function g() {return true;}
}
})();
上面代碼,結(jié)果應(yīng)該與(1)相同,但Firefox處理結(jié)果出現(xiàn)了不同返回false,暫且把這看作是Firefox的bug(雖然Firefox不認(rèn)為這是個Bug)。
分析:在Firefox中,出現(xiàn)在條件語句中的代碼塊不做活動對象初始化的處理(Firefox把它當(dāng)作塊作用域??),即把上例的if (true) 修改為 if (false) 結(jié)果是一樣的。
到此為止,已經(jīng)可以確定g()執(zhí)行后的值是true還是false了。
整合一下(3):
f = function() {return true;};
g = function() {return false;};
(function() {
if (g()) {
alert("能看到這個警告框,說明你的瀏覽器不是Firefox");
function g() {return true;}
}
})();
繼續(xù)分解代碼(4):
f = function() {return true;};
g = function() {return false;};
(function() {
f = function() {return false;};
})();
alert(f());
代碼運(yùn)行,無一例外的返回false,這正是我們想要的結(jié)果。
然后稍作改變(5):
f = function() {return true;};
g = function() {return false;};
(function() {
f = function f() {return false;};
})();
alert(f());
經(jīng)過稍加修改后,這次掉鏈子的輪到IE了,IE竟然返回了true!!!這是IE的Bug
最后大整合。
我們不僅知道結(jié)果,而且知道為啥是這結(jié)果了(6):
f = function() {return true;};
g = function() {return false;};
(function() {
if (g() && [] == ![]) {
f = function f() {return false;};
function g() {return true;}
}
})();
alert(f());
沒有問題的瀏覽器會返回:false
Firefox不會執(zhí)行到if條件內(nèi)部,返回:true
IE會執(zhí)行到if條件內(nèi)部(但把if內(nèi)部的f作為局部變量處理了),最后返回:true
【怎么提升公共英語二級聽力】相關(guān)文章:
如何提升公共英語二級聽力03-12
公共英語二級聽力的提升技巧05-22
公共英語二級聽力提升技巧04-13
2017公共英語二級聽力提升技巧05-31
公共英語二級聽力復(fù)習(xí)05-08
英語聽力怎么迅速提升06-05
公共英語二級聽力必考詞匯02-04
公共英語二級聽力答題技巧05-12
- 相關(guān)推薦