亚洲免费一级高潮_欧美极品白嫩视频在线_中国AV片在线播放_欧美亚洲日韩欧洲在线看

您現(xiàn)在所在的位置:首頁(yè) >學(xué)員就業(yè) > 就業(yè)寶典 > 提升經(jīng)驗(yàn)值,前端面試盡在掌控中

提升經(jīng)驗(yàn)值,前端面試盡在掌控中

來(lái)源:奇酷教育 發(fā)表于:

Q:如何實(shí)現(xiàn)瀏覽器內(nèi)多個(gè)標(biāo)簽頁(yè)之間的通信?A:調(diào)用localstorge、cookies等本地存儲(chǔ)方式Q:線程與進(jìn)程的區(qū)別?A:一個(gè)程序至少有一個(gè)進(jìn)程,一個(gè)進(jìn)

Q:如何實(shí)現(xiàn)瀏覽器內(nèi)多個(gè)標(biāo)簽頁(yè)之間的通信?
A:調(diào)用localstorge、cookies等本地存儲(chǔ)方式
Q:線程與進(jìn)程的區(qū)別?
A:一個(gè)程序至少有一個(gè)進(jìn)程,一個(gè)進(jìn)程至少有一個(gè)線程。
線程的劃分尺度小于進(jìn)程,使得多線程程序的并發(fā)性高。
另外,進(jìn)程在執(zhí)行過程中擁有獨(dú)立的內(nèi)存單元,而多個(gè)線程共享內(nèi)存,從而極大地提高了程序的運(yùn)行效率。 
線程在執(zhí)行過程中與進(jìn)程還是有區(qū)別的。每個(gè)獨(dú)立的線程有一個(gè)程序運(yùn)行的入口、順序執(zhí)行序列和程序的出口。但是線程不能夠獨(dú)立執(zhí)行,必須依存在應(yīng)用程序中,由應(yīng)用程序提供多個(gè)線程執(zhí)行控制。 
從邏輯角度來(lái)看,多線程的意義在于一個(gè)應(yīng)用程序中,有多個(gè)執(zhí)行部分可以同時(shí)執(zhí)行。但操作系統(tǒng)并沒有將多個(gè)線程看做多個(gè)獨(dú)立的應(yīng)用,來(lái)實(shí)現(xiàn)進(jìn)程的調(diào)度和管理以及資源分配。這就是進(jìn)程和線程的重要區(qū)別。
Q:你如何對(duì)網(wǎng)站的文件和資源進(jìn)行優(yōu)化?
A:期待的解決方案包括:
 文件合并
 文件最小化/文件壓縮
 使用 CDN 托管
 緩存的使用(多個(gè)域名來(lái)提供緩存)
 其他
Q:請(qǐng)說(shuō)出三種減少頁(yè)面加載時(shí)間的方法?
A:1.優(yōu)化圖片; 
 2.圖像格式的選擇(GIF:提供的顏色較少,可用在一些對(duì)顏色要求不高的地方);
 3.優(yōu)化CSS(壓縮合并css,如margin-top,margin-left...) ;
 4.網(wǎng)址后加斜杠(如www.campr.com/目錄,會(huì)判斷這個(gè)“目錄是什么文件類型,或者是目錄); 
 5.標(biāo)明高度和寬度(如果瀏覽器沒有找到這兩個(gè)參數(shù),它需要一邊下載圖片一邊計(jì)算大小,如果圖片很多,瀏覽器需要不斷地調(diào)整頁(yè)面。這不但影響速度,也影響瀏覽體驗(yàn);
當(dāng)瀏覽器知道了高度和寬度參數(shù)后,即使圖片暫時(shí)無(wú)法顯示,頁(yè)面上也會(huì)騰出圖片的空位,然后繼續(xù)加載后面的內(nèi)容。從而加載時(shí)間快了,瀏覽體驗(yàn)也更好了); 
6.減少http請(qǐng)求(合并文件,合并圖片);
Q:你都使用哪些工具來(lái)測(cè)試代碼的性能?
A:Profiler, JSPerf(http://jsperf.com/nexttick-vs-setzerotimeout-vs-settimeout), Dromaeo
Q:什么是 FOUC(無(wú)樣式內(nèi)容閃爍)?你如何來(lái)避免 FOUC?
A: FOUC - Flash Of Unstyled Content 文檔樣式閃爍
 <style type="text/css" media="all">@import "../fouc.css";</style>
而引用CSS文件的@import就是造成這個(gè)問題的罪魁禍?zhǔn)?。IE會(huì)先加載整個(gè)HTML文檔的DOM,然后再去導(dǎo)入外部的CSS文件,因此,在頁(yè)面DOM加載完成到CSS導(dǎo)入完成中間會(huì)有一段時(shí)間頁(yè)面上的內(nèi)容是沒有樣式的,這段時(shí)間的長(zhǎng)短跟網(wǎng)速,電腦速度都有關(guān)系。
解決方法簡(jiǎn)單的出奇,只要在<head>之間加入一個(gè)<link>或者<script>元素就可以了。
Q:null和undefined的區(qū)別?
A:null是一個(gè)表示"無(wú)"的對(duì)象,轉(zhuǎn)為數(shù)值時(shí)為0;undefined是一個(gè)表示"無(wú)"的原始值,轉(zhuǎn)為數(shù)值時(shí)為NaN。
當(dāng)聲明的變量還未被初始化時(shí),變量的默認(rèn)值為undefined。 null用來(lái)表示尚未存在的對(duì)象,常用來(lái)表示函數(shù)企圖返回一個(gè)不存在的對(duì)象。
undefined表示"缺少值",就是此處應(yīng)該有一個(gè)值,但是還沒有定義。典型用法是:
(1)變量被聲明了,但沒有賦值時(shí),就等于undefined。
(2) 調(diào)用函數(shù)時(shí),應(yīng)該提供的參數(shù)沒有提供,該參數(shù)等于undefined。
(3)對(duì)象沒有賦值的屬性,該屬性的值為undefined。
(4)函數(shù)沒有返回值時(shí),默認(rèn)返回undefined。
null表示"沒有對(duì)象",即該處不應(yīng)該有值。典型用法是:
(1) 作為函數(shù)的參數(shù),表示該函數(shù)的參數(shù)不是對(duì)象。
(2) 作為對(duì)象原型鏈的終點(diǎn)。
Q:new操作符具體干了什么呢?
A: 1、創(chuàng)建一個(gè)空對(duì)象,并且 this 變量引用該對(duì)象,同時(shí)還繼承了該函數(shù)的原型。
   2、屬性和方法被加入到 this 引用的對(duì)象中。
   3、新創(chuàng)建的對(duì)象由 this 所引用,并且最后隱式的返回 this 。
var obj  = {};
obj.__proto__ = Base.prototype;
Base.call(obj);
Q:js延遲加載的方式有哪些?
A:defer和async、動(dòng)態(tài)創(chuàng)建DOM方式(創(chuàng)建script,插入到DOM中,加載完畢后callBack)、按需異步載入js
Q:如何解決跨域問題?
A:jsonp、 document.domain+iframe、window.name、window.postMessage、服務(wù)器上設(shè)置代理頁(yè)面
jsonp的原理是動(dòng)態(tài)插入script標(biāo)簽