// 愛多聊面試題
1.有關(guān)HTTP協(xié)議猩谊,下面說法不正確的是(D)
A.HTTP1.1默認(rèn)開了長連接(Connection: keep-alive)
B.HTTP響應(yīng)包括數(shù)組狀態(tài)碼,304代表請(qǐng)求重定向
C.HTTP協(xié)議默認(rèn)使用80端口
D.HTTP協(xié)議是和TCP,UDP網(wǎng)絡(luò)層處于同一層的協(xié)議
tcp和udp協(xié)議是傳輸協(xié)議焕蹄,ip是網(wǎng)絡(luò)層協(xié)議劣像、http是應(yīng)用層協(xié)議
2.HTTP協(xié)議中,如果要告知所請(qǐng)求的網(wǎng)頁已經(jīng)永久跳轉(zhuǎn)到了另一個(gè)地址,應(yīng)該返回哪個(gè)狀態(tài)碼(A)
A.301 B.302 C.401 D.503
3.下列哪些是H5的新特性(A, B, C, )
A.Local Storage
B.Web Worker
C.Canvas
D.Web Spell Check API
4.下列哪一項(xiàng)是在新窗口中打開網(wǎng)頁文檔(B)
A._self B._bank C._top D._parent
5.下面關(guān)于CSS布局的描述要尔,不正確的是(D)
A.塊級(jí)元素實(shí)際占用的寬度與它的 width 屬性有關(guān)
B.塊級(jí)元素實(shí)際占用的寬度與它的 border 屬性有關(guān)
C.塊級(jí)元素實(shí)際占用的寬度與它的 padding 屬性有關(guān)
D.塊級(jí)元素實(shí)際占用的寬度與它的 background 屬性有關(guān)
6.下面有關(guān)CSS選擇器的說法錯(cuò)誤的是(C)
A. .intro -- 選擇 class="intro"的所有元素
B. #firstname -- 選擇 id="firstname" 的元素
C. div > p -- 選擇所有<div>元素和所有<p>元素
(將所有<div>標(biāo)簽的子標(biāo)簽<p>選中,不包括孫子輩標(biāo)簽歌豺。)
D. p -- 選擇所有的<p>元素
7.下列代碼
var obj = {}
obj.hasOwnProperty("val")
中的hasOwnProperty的作用是(A)
A.判斷obj對(duì)象是否具有val屬性
B.判斷obj對(duì)象是否具有val方法
C.判斷obj的原型對(duì)象是否具有val屬性
D.判斷obj的原型對(duì)象是否具有val方法
8.以下哪一條js語句會(huì)產(chǎn)生錯(cuò)誤(A)
A var obj = ()
B var obj = []
C var obj = {}
D var obj = / /
9.以下哪些js表達(dá)式會(huì)返回true(A, D)
A. null == undefined
B. null == 0
C. null == false
D. 0 == false
10.下面代碼,依次會(huì)彈出什么(B)
var myvar = "theWindow"
var object = {
myvar: "MyObject",
getVar: function() {
return function() {
return myvar
}
}
}
alert(object.getVar()())
function MyCont()
{
var myvar = "MyObject"
this.getVar = function() {
return function() {
return myvar
}
}
}
var obj = new MyCont()
alert(obj.getVar()())
A. theWindow, theWindow
A. theWindow, MyObject
A. MyObject, theWindow
A. MyObject, MyObject
11.display: none 和visibility: hidden 的區(qū)別是什么心包?
聯(lián)系:它們都能讓元素不可見
區(qū)別:
display:none;會(huì)讓元素完全從渲染樹中消失类咧,渲染的時(shí)候不占據(jù)任何空間;
visibility: hidden;不會(huì)讓元素從渲染樹消失,渲染師元素繼續(xù)占據(jù)空間痕惋,只是內(nèi)容不可見
display: none;是非繼承屬性区宇,子孫節(jié)點(diǎn)消失由于元素從渲染樹消失造成,通過修改子孫節(jié)點(diǎn)屬性無法顯示血巍;
visibility: hidden;是繼承屬性萧锉,子孫節(jié)點(diǎn)消失由于繼承了hidden,通過設(shè)置visibility: visible;可以讓子孫節(jié)點(diǎn)顯示述寡;
修改常規(guī)流中元素的display通常會(huì)造成文檔重排柿隙。修改visibility屬性只會(huì)造成本元素的重繪。
讀屏器不會(huì)讀取display: none;元素內(nèi)容鲫凶;會(huì)讀取visibility: hidden;元素內(nèi)容
12.請(qǐng)說出三種減少頁面加載時(shí)間的方法
1禀崖、減少http請(qǐng)求(合并文件、合并圖片)
2螟炫、優(yōu)化圖片文件波附,減小其尺寸,特別是縮略圖昼钻,一定要按尺寸生成縮略圖然后調(diào)用掸屡,不要在網(wǎng)頁中用resize方法實(shí)現(xiàn),
雖然這樣看到的圖片外形小了然评,但是其加載的數(shù)據(jù)量一點(diǎn)也沒減少仅财。曾經(jīng)見過有人在網(wǎng)頁中加載的縮略圖,
其真實(shí)尺寸有10M之巨…普通圖像碗淌、icon也要盡可能壓縮后盏求,可以采用web圖像保存、減少顏色數(shù)等等方法實(shí)現(xiàn)亿眠。
3碎罚、圖像格式的選擇(GIF:提供的顏色較少,可用在一些對(duì)顏色要求不高的地方)
4纳像、 壓縮Javascript荆烈、CSS代碼:一般js、css文件中存在大量的空格竟趾、換行憔购、注釋,這些利于閱讀潭兽,如果能夠壓縮掉倦始,
將會(huì)很有利于網(wǎng)絡(luò)傳輸。這方面的工具也有很多山卦,可以在百度里搜索一下關(guān)鍵字“css代碼壓縮”鞋邑,
或者“js代碼壓縮”將會(huì)發(fā)現(xiàn)有很多網(wǎng)站都提供這樣的功能诵次,當(dāng)然了你也可以自己寫程序來做這個(gè)工作,
如果你會(huì)的話枚碗。就拿我們這個(gè)網(wǎng)站來說吧逾一。剛開始上傳這個(gè)網(wǎng)站的時(shí)候,我的很多Css代碼都沒有壓縮肮雨,
后面發(fā)現(xiàn)了這個(gè)問題遵堵,我就上網(wǎng)找了相關(guān)的網(wǎng)站的壓縮代碼的功能,最后就把很多CSS文件都?jí)嚎s了怨规。
這個(gè)壓縮比率還是比較高的陌宿,一般都有百分五十左右。這個(gè)代碼壓縮對(duì)于網(wǎng)頁的加載還是很有用的波丰。
5壳坪、 服務(wù)器啟用gzip壓縮功能:將要傳輸?shù)奈募嚎s后傳輸?shù)娇蛻舳嗽俳鈮海诰W(wǎng)絡(luò)傳輸 數(shù)據(jù)量會(huì)大幅減小掰烟。
在服務(wù)器上的Apache爽蝴、Nginx可直接啟用,也可用代碼直接設(shè)置傳輸文件頭纫骑,增加gzip的設(shè)置蝎亚,也可從 負(fù)載均衡設(shè)備直接設(shè)置。
不過需要留意的是先馆,這個(gè)設(shè)置會(huì)略微增加服務(wù)器的負(fù)擔(dān)发框。服務(wù)器性能不是很好的網(wǎng)站,要慎重考慮磨隘。
6.標(biāo)明高度和寬度(如果瀏覽器沒有找到這兩個(gè)參數(shù)缤底,它需要一邊下載圖片一邊計(jì)算大小顾患,如果圖片很多番捂,瀏覽器需要不斷地調(diào)整頁面。
這不但影響速度江解,也影響瀏覽體驗(yàn)设预。 當(dāng)瀏覽器知道了高度和寬度參數(shù)后,即使圖片暫時(shí)無法顯示犁河,頁面上也會(huì)騰出圖片的空位鳖枕,
然后繼續(xù)加載后面的內(nèi)容。從而加載時(shí)間快了桨螺,瀏覽體驗(yàn)也更好了宾符。)
7、網(wǎng)址后面加上“/”:對(duì)服務(wù)器而言灭翔,不加斜杠服務(wù)器會(huì)多一次判斷的過程魏烫,加斜杠就會(huì)直接返回網(wǎng)站設(shè)置的存放在網(wǎng)站根目錄下的默認(rèn)頁面。
13.現(xiàn)在一些大型站點(diǎn)都默認(rèn)啟用了https,請(qǐng)說一下你對(duì)https的理解哄褒,https會(huì)對(duì)url和cookie加密嗎稀蟋?
為保護(hù)用戶隱私和網(wǎng)絡(luò)安全。通過數(shù)據(jù)加密呐赡、校驗(yàn)數(shù)據(jù)完整性和身份認(rèn)證三種機(jī)制來保障安全退客。
HTTPS要使客戶端與服務(wù)器端的通信過程得到安全保證,必須使用的對(duì)稱加密算法链嘀,但是協(xié)商對(duì)稱加密算法的過程萌狂,需要使用非對(duì)稱加密算法來保證安全,
然而直接使用非對(duì)稱加密的過程本身也不安全怀泊,會(huì)有中間人篡改公鑰的可能性粥脚,所以客戶端與服務(wù)器不直接使用公鑰,
而是使用數(shù)字證書簽發(fā)機(jī)構(gòu)頒發(fā)的證書來保證非對(duì)稱加密過程本身的安全包个。這樣通過這些機(jī)制協(xié)商出一個(gè)對(duì)稱加密算法刷允,
就此雙方使用該算法進(jìn)行加密解密。從而解決了客戶端與服務(wù)器端之間的通信安全問題碧囊。
對(duì)url沒有加密树灶,對(duì)cookie有加密
14.請(qǐng)編寫一個(gè)js函數(shù) perseQueryString,它的用途是把URL的參數(shù)解析為一個(gè)對(duì)象。
如:var url = "http://witmax.cn?key0=0&key1=1&key2=2"
var perseQueryString = function(url) {
var result = {}
if(url.indexOf("?") != -1) {
var index = url.indexOf("?")
//
var str = url.substr(index + 1)
//
var strs = str.split("&");
//
for(var i = 0; i < strs.length; i++) {
var strSplit = strs[i].split("=")
result[strSplit[0]] = strSplit[1]
}
}
return result
}
perseQueryString(url)
15.請(qǐng)編寫一個(gè)mul函數(shù)糯而,預(yù)期調(diào)用方式及結(jié)果如下
console.log(mul(2)(3)(4)) //輸出24
console.log(mul(4)(3)(4)) //輸出48
function mul(x) {
const result = (y) => mul(x * y);
result.valueOf = () => x;
return result;
}
16.微信小程序主要禁止的js api有哪些天通?
沒有找到答案
17.微信小程序 wx:if 和hidden的不同?
https://blog.csdn.net/yelin042/article/details/72519081
wx:if 在隱藏的時(shí)候不渲染熄驼,而 hidden 在隱藏時(shí)仍然渲染像寒,只是不呈現(xiàn)。
所以如果頻繁切換的話瓜贾,用 wx:if 將會(huì)消耗更多資源诺祸,因?yàn)槊看纬尸F(xiàn)的時(shí)候他都會(huì)渲染,每次隱藏的時(shí)候祭芦,他都會(huì)銷毀筷笨。
18.微信小程序日志查看方案。
https://blog.csdn.net/u012421719/article/details/53140218
日志目錄:C:\Users(這兒是WINDOWS登錄用戶名)\AppData\Local\微信web開發(fā)者工具\(yùn)User Data\WeappLog