摘要:需求一個(gè)輸入框,用戶(hù)輸入時(shí)有聯(lián)想搜索,每次用戶(hù)輸入都會(huì)觸發(fā)請(qǐng)求,過(guò)多的請(qǐng)求會(huì)造成服務(wù)器的壓力,如何去解決這個(gè)問(wèn)題請(qǐng)求函數(shù)面試者延遲發(fā)送可以去解決這樣的問(wèn)題。
寫(xiě)在前面的話(huà)
一般來(lái)說(shuō),面試質(zhì)量的高低很大程度影響公司是否想接受改人才,也影響了人才是否愿意去公司。質(zhì)量高的面試,公司能表明對(duì)人才的要求,個(gè)人也能表明所期待的公司是一個(gè)什么模式的公司。最終會(huì)有利于雙向選擇的過(guò)程。能盡早的把問(wèn)題暴露在面試過(guò)程中,而不會(huì)人才進(jìn)入公司后。
公司和個(gè)人都會(huì)根據(jù)技術(shù)面試的情況去給個(gè)人和公司一個(gè)總體技術(shù)評(píng)價(jià),直接影響最終的面試結(jié)果。如何能用幾個(gè)技術(shù)面試題來(lái)判斷面試者的知識(shí)儲(chǔ)備是一個(gè)很值得探討的問(wèn)題。好的面試題能引導(dǎo)面試者,而不是故意去為難面試者,在解決問(wèn)題的過(guò)程體現(xiàn)其思考方向。目前,web前端面試題,部分公司準(zhǔn)備和個(gè)人準(zhǔn)備都存在一定的問(wèn)題,這幾個(gè)問(wèn)題,導(dǎo)致面試質(zhì)量不高。本文旨在思考如何能提高web前端面試題的質(zhì)量。
面試題常見(jiàn)問(wèn)題
一.準(zhǔn)備不足
個(gè)人在面試之前一定要有充足的準(zhǔn)備,包括公司的業(yè)務(wù),技術(shù),發(fā)展方向。
面試官也要對(duì)面試者的項(xiàng)目有一定了解,面試題也應(yīng)該有一個(gè)思考。
二.面試題來(lái)源
面試官常常會(huì)從網(wǎng)上搜面試題,模仿面試題。往往這些面試題和自己想招的人才所需的技術(shù)儲(chǔ)備還是存在一定差距。
var name = "java" var obj = { name: "javascript", func: function() { return this.name; } }; console.log(name); console.log(obj.func()); var newFunc = obj.func; console.log(newFunc());
網(wǎng)上存在大量這樣的面試題,請(qǐng)問(wèn)這樣的面試題能考驗(yàn)出來(lái)人才什么技能,什么思維方式?在沒(méi)思考清楚這兩個(gè)問(wèn)題之前,無(wú)需拿此題去跟面試者談?wù)摗?/p>
面試題
好的面試題應(yīng)該能考查思維方式和技術(shù)能力,本文會(huì)持續(xù)分享這樣的面試題。方式主要以對(duì)話(huà)的方式。
需求:一個(gè)輸入框,用戶(hù)輸入時(shí)有聯(lián)想搜索,每次用戶(hù)輸入都會(huì)觸發(fā)請(qǐng)求,過(guò)多的請(qǐng)求會(huì)造成服務(wù)器的壓力,如何去解決這個(gè)問(wèn)題?
function ajax() { ... //請(qǐng)求函數(shù) }
面試者:延遲發(fā)送可以去解決這樣的問(wèn)題。
面試官:這是常見(jiàn)的解決方法,請(qǐng)寫(xiě)出代碼。
var timer = 0; $("input").on("change", function(){ clearTimeout(timer); timer = setTimeout(function(){ ajax() }, 1000) });
面試官:這樣是正確的,可以解決問(wèn)題。但是全局變量timer不好,throttle與輸入處理函數(shù)耦合在一起,能提取一個(gè)公共函數(shù)出來(lái)嗎?
面試者:我想想。
面試官:試試閉包?timer作為一個(gè)自執(zhí)行函數(shù)的變量?
面試者:我試試。
var delay = (function(){ var timer = 0; return function(fn, time) { clearTimeout(timer); timer = setTimeout(fn, time) } })(); $("input").on("change", function(){ delay(function() { ajax() }, 1000); });
面試官:?jiǎn)栴}基本解決了,但是頁(yè)面上如果有兩個(gè)這樣的輸入框,分別對(duì)應(yīng)不同的聯(lián)想搜索,輸入框一輸入完成之后馬上在輸入框二輸入,有什么Bug嗎?
面試者:輸入框一沒(méi)有發(fā)送請(qǐng)求嗎?
面試官:是的!造成這個(gè)問(wèn)題的原因是什么?怎么去解決這個(gè)問(wèn)題?
面試者:原因是公用了timer。解決這個(gè)問(wèn)題需要把timer分開(kāi)。
var delay = function(){ var timer = 0; return function(fn, time) { clearTimeout(timer); timer = setTimeout(fn, time) } }; var deday1 = delay(); var delay2 = delay();
面試官:OK,問(wèn)題解決了!lodash的throttle可以很好的解決這些問(wèn)題。
面試官:如果不考慮性能,不允許使用clearTimeout,如何去解決這個(gè)問(wèn)題呢?
面試者:...
面試官:不能用clearTimeout,也就是說(shuō)每次setTimeout都必然執(zhí)行。執(zhí)不執(zhí)行fn回調(diào)函數(shù)與setTimeout并沒(méi)有直接關(guān)系,是不是可以考慮之前的定時(shí)器不去執(zhí)行fn回調(diào)函數(shù)呢?只有最后一次執(zhí)行fn回調(diào)函數(shù)。
面試者:我有思路了!
......
解決的方法有很多,就不給出代碼了。
該面試題的小結(jié):
考查了解決這樣異步問(wèn)題的方案好解決問(wèn)題的思路。
對(duì)閉包的理解和高階函數(shù)的理解。比直接問(wèn)是否理解閉包,是不是更清晰呢?
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/81207.html
1、軟件測(cè)試的流程是什么? 答: 1)熟悉需求 2)制定測(cè)試計(jì)劃 3)設(shè)計(jì)測(cè)試(分析與編寫(xiě)測(cè)試用例) 4)執(zhí)行測(cè)試,記錄測(cè)試結(jié)果 5)記錄缺陷,通過(guò)《缺陷報(bào)告》記錄,跟蹤管理缺陷 6)測(cè)試總結(jié)(總結(jié)報(bào)告) 2、測(cè)試用例主要有哪些元素 答: 編號(hào) 缺陷的名稱(chēng) 缺陷的優(yōu)先級(jí) 缺陷的等級(jí) 缺陷的復(fù)現(xiàn)步驟 3、軟件測(cè)試有什么策略和階段 答: 策略:動(dòng)態(tài)測(cè)試、靜態(tài)測(cè)試、白盒測(cè)試、黑盒測(cè)試 測(cè)試階段按研發(fā)順序...
摘要:月日思考題題一站點(diǎn)是否應(yīng)該出現(xiàn)在標(biāo)簽中題二是否應(yīng)該支持面試題什么是盒子模型答標(biāo)準(zhǔn)盒和怪異盒簡(jiǎn)述和的區(qū)別答從外部引入資源,將頁(yè)面導(dǎo)向外部資源簡(jiǎn)述同步和異步的區(qū)別答同步當(dāng)前進(jìn)程執(zhí)行完后,下一個(gè)進(jìn)程才能執(zhí)行異步當(dāng)前進(jìn)程的執(zhí)行不影響下一個(gè)進(jìn)程的執(zhí)行 7月12日 思考題 題一:站點(diǎn)Logo是否應(yīng)該出現(xiàn)在標(biāo)簽中? 題二:是否應(yīng)該支持IE6? 面試題 什么是盒子模型?答:margin,bord...
摘要:月日思考題題一站點(diǎn)是否應(yīng)該出現(xiàn)在標(biāo)簽中題二是否應(yīng)該支持面試題什么是盒子模型答標(biāo)準(zhǔn)盒和怪異盒簡(jiǎn)述和的區(qū)別答從外部引入資源,將頁(yè)面導(dǎo)向外部資源簡(jiǎn)述同步和異步的區(qū)別答同步當(dāng)前進(jìn)程執(zhí)行完后,下一個(gè)進(jìn)程才能執(zhí)行異步當(dāng)前進(jìn)程的執(zhí)行不影響下一個(gè)進(jìn)程的執(zhí)行 7月12日 思考題 題一:站點(diǎn)Logo是否應(yīng)該出現(xiàn)在標(biāo)簽中? 題二:是否應(yīng)該支持IE6? 面試題 什么是盒子模型?答:margin,bord...
摘要:月日思考題題一站點(diǎn)是否應(yīng)該出現(xiàn)在標(biāo)簽中題二是否應(yīng)該支持面試題什么是盒子模型答標(biāo)準(zhǔn)盒和怪異盒簡(jiǎn)述和的區(qū)別答從外部引入資源,將頁(yè)面導(dǎo)向外部資源簡(jiǎn)述同步和異步的區(qū)別答同步當(dāng)前進(jìn)程執(zhí)行完后,下一個(gè)進(jìn)程才能執(zhí)行異步當(dāng)前進(jìn)程的執(zhí)行不影響下一個(gè)進(jìn)程的執(zhí)行 7月12日 思考題 題一:站點(diǎn)Logo是否應(yīng)該出現(xiàn)在標(biāo)簽中? 題二:是否應(yīng)該支持IE6? 面試題 什么是盒子模型?答:margin,bord...
摘要:前言這次找工作也面了好幾家公司,也通過(guò)了好幾家公司的面試,畢竟之前也準(zhǔn)備了一段時(shí)間,所以面試的時(shí)候心里也不是很虛。的代碼分割怎么實(shí)現(xiàn)的說(shuō)說(shuō)剛才提到的和的區(qū)別前端緩存怎么實(shí)現(xiàn)扯扯強(qiáng)緩存和協(xié)商緩存,重點(diǎn)問(wèn)了如何實(shí)現(xiàn)緩存二面就聊了項(xiàng)目。。。 前言 這次找工作也面了好幾家公司,也通過(guò)了好幾家公司的面試,畢竟之前也準(zhǔn)備了一段時(shí)間,所以面試的時(shí)候心里也不是很虛。 這里記錄一下面試過(guò)程中被問(wèn)到的問(wèn)題...
閱讀 3611·2023-04-26 02:10
閱讀 1397·2021-11-22 15:25
閱讀 1702·2021-09-22 10:02
閱讀 945·2021-09-06 15:02
閱讀 3505·2019-08-30 15:55
閱讀 635·2019-08-30 13:58
閱讀 2807·2019-08-30 12:53
閱讀 3092·2019-08-29 12:38