vue菜鳥從業記:沒準備好的面試,那叫尬聊

最近個人朋友王小閏參加了一場面試,在他填寫簡歷表的時候,排在他前面的應聘者正在旁邊鄰桌接受來自面試官的檢驗。前端

王小閏邊寫邊想,這不就是一下子要面試本身的前端leader麼,如今面試官提問的一些面試題會不會就是待會兒要問本身的問題? 想到這,我朋友王小閏不自覺地豎起了耳朵聽,借鑑下別人回答問題的經驗,保不齊本身一下子要套用一下。vue

不聽不知道,一聽嚇一跳。沒準備好的面試,那叫一個尬聊。面試

首先,面試開場白總缺乏不了自我介紹,一方面是面試官想聽聽你對本身的介紹,順便有時間看看簡歷上的描述,是否與口述一致。另外一方面就是看看你簡歷上作過什麼項目,用到了哪些技術棧,一下子好提問你。ajax

其實,最重要的是爲了緩解兩人的緊張,以打開局面。固然,若是坐在對面的面試官是第一次面試別人,也免不了會緊張。後端

那哥們自我介紹完畢以後,面試官問了幾個問題,都比較有針對性,聽得出來這家公司對數據交互綁定這一塊仍是比較重視的。瀏覽器

好比面試官上來就問,你在以前公司項目裏用過ajax嗎?安全

只聽那哥們很自信地說,用過的,上家公司作的是先後端分離的vue項目,常用ajax獲取後臺數據,而後渲染到頁面上。bash

面試官追問:那ajax默認是同步仍是異步?服務器

問到這個問題的時候,前面那個哥們卻一直在扯ajax的 get 和 post 方法,聽的王小閏後背直冒冷汗,這麼尬聊好麼?知之爲知之,不知爲不知啊,哥們~前後端分離

面試以前千萬要準備好,否則會鬧笑話的。

話說回來,這個問題你想到應該怎麼回答才能令面試官滿意了嗎?

通常前端老司機都是這麼回答的:AJAX中根據async的值不一樣分爲同步(async = false)和異步(async = true)兩種執行方式;在W3C的教程中推薦使用異步執行。

默認狀況下async是true,也就是異步。

其實面試官看得出來他答非所問,可是並無揭穿他,而是繼續提問下一個問題。

面試官接着問:Ajax中何時用同步,何時用異步?

想要回答這個問題,首先要縷清思路,先要了解什麼是同步請求,什麼是異步請求,而後纔是使用場景的分析。

先來聽聽職場老司機是如何回答的吧~

一.什麼是同步請求:(false)

同步請求便是當前發出請求後,瀏覽器什麼都不能作,必須得等到請求完成返回數據以後,纔會執行後續的代碼,至關因而排隊,前一我的辦理完本身的事務,下一我的才能接着辦。也就是說,當JS代碼加載到當前AJAX的時候會把頁面裏全部的代碼中止加載,頁面處於一個假死狀態,當這個AJAX執行完畢後纔會繼續運行其餘代碼頁面解除假死狀態(即當ajax返回數據後,才執行後面的function)。

二.什麼是異步請求:(true)

異步請求就當發出請求的同時,瀏覽器能夠繼續作任何事,Ajax發送請求並不會影響頁面的加載與用戶的操做,至關因而在兩條線上,各走各的,互不影響。

通常默認值爲true,異步。異步請求能夠徹底不影響用戶的體驗效果,不管請求的時間長或者短,用戶都在專心的操做頁面的其餘內容,並不會有等待的感受。

下面來區別一下同步和異步有什麼不一樣:

異步:在異步模式下,當咱們使用AJAX發送完請求後,可能還有代碼須要執行。這個時候可能因爲種種緣由致使服務器尚未響應咱們的請求,可是由於咱們採用了異步執行方式,全部包含AJAX請求代碼的函數中的剩餘代碼將繼續執行。若是咱們是將請求結果交由另一個JS函數去處理的,那麼,這個時候就比如兩條線程同時執行同樣。

同步:在同步模式下,當咱們使用AJAX發送完請求後,後續還有代碼須要執行,咱們一樣將服務器響應交由另外一個JS函數去處理,可是這時的代碼執行狀況是:在服務器沒有響應或者處理響應結果的JS函數尚未處理完成return時,包含請求代碼的函數的剩餘代碼是不可以執行的。就比如單線程同樣,請求發出後就進入阻塞狀態,直到解除阻塞,餘下的代碼纔會繼續執行。

有人說:既然異步這麼好,那所有都用異步好了,同步存在還有什麼意義?

那麼,同步適用於一些什麼狀況呢?

咱們能夠想一下,同步是一步一步來操做,等待請求返回的數據,再執行下一步,那麼必定會有一些狀況,只有這一步執行完,拿到數據,經過獲取到這一步的數據來執行下一步的操做。這是異步沒有辦法實現的,所以同步的存在必定有他存在的道理。

正如這世界上大部分事物發展的規則同樣,存在即合理。

如何選擇同步仍是異步模式?要回答這一問題,咱們能夠經過下面可能出現的問題來回答:

咱們在發送AJAX請求後,還須要繼續處理服務器的響應結果,若是這時咱們使用異步請求模式同時未將結果的處理交由另外一個JS函數進行處理。這時就有可能發生這種狀況:異步請求的響應尚未到達,函數已經執行完了return語句了,這時將致使return的結果爲空字符串。

如此回答,才能體現出你思惟邏輯縝密,以面試官拋出來的問題做爲引子,以點帶面深刻闡述一下,既回答了面試官的問題,又展現了你思考問題的深度。

這也算是一個面試技巧,不僅僅要回答問題,還要說出你對這個概念的全方位的理解,如此才能在面試中加分。

很顯然,這個問題那哥們也是強行尬聊,回答的模棱兩可,沒有說到點兒上。

爲了避免冷場,面試官繼續拷問:如何設置ajax爲同步?

此時那哥們心理活動確定在想,mmp,看來此次面試要栽倒在ajax上面了。這個問題思索了半天,知道躲不過了,而後前面那哥們直接委婉地說,我以前在公司項目裏使用到ajax的地方比較少,沒有作太多深刻的瞭解。

其實這個問題很簡單,只要把async字段的value值更改爲false就OK了。下面的代碼片斷形象又生動地闡述了ajax同步的機制。

console.log(1);

$.ajax({

    url: '',

    async: false,

    success: function() {

        console.log(2);

    }

});

console.log(3);
複製代碼

面試講到這兒,你須要記住的幾點:

  • 1.Jquery中的ajax在默認不寫async狀況下,請求爲異步請求;即:async:true;

  • 2.若是項目中在作一項操做以前要進行ajax的驗證,不管同步或者異步,都必須在驗證經過後,方纔進行其餘操做。

  • 3.熟練應用error參數,關注返回來的異常信息,從而斷定程序的錯誤位置;

  • 4.項目前端作驗證,後端也作相應的驗證;前端作驗證是爲了減小服務器壓力和增長用戶體驗,後端作驗證纔是爲了安全。

還有,我想對前面面試的那哥們說點個人想法:

若是哪一個面試題不會,或者不清楚,就直接告訴面試官,很差意思這個我不太清楚,而後虛心求教,這樣起碼能落個真誠、好學的好印象。若是你胡編亂造,只會下降你在面試官心中的形象,這樣是會減分的。

因此,你對ajax真的瞭解嗎?

面試快結束的時候,面試官還問了一些關於vue的問題,這哥們回答的還行。

最後,面試官問那個應聘者哥們,你有什麼想問個人嗎?

那哥們吞吞吐吐地說,其實也沒什麼想問的,只要貴公司能給我發offer,我來了咱公司必定捲起袖子好好幹,幹出本身的風采,體現出本身的價值!!!反正他說了一大堆誠懇的話。

其實後來這家公司沒有錄用他,緣由不詳。

面試官提的某些問題,我朋友王小閏也不是很瞭解。因而他趕忙拿出手機準備百度一下,手機一掏出來,面試官回頭說:簡歷表填好了吧,輪到你了。

此時,王小閏只想攤手說一句:好尷尬~

不過還好我比較真誠,有一說一,有二說二,從不尬聊。

面試寫到這兒,也該作個總結了。

首先,面試以前,必定要作好準備。就算沒準備好也不要緊,當着面試官的面必定要實話實說,若是你不知道的東西千萬別瞎說,別跟面試官尬聊或者是較真,面試官之因此能坐在那個位置由他來面試別人,確定也是身經百戰,見過不少場面的人物,能看出來你是否在亂講,從你一張嘴就基本能判斷出你對某個技術點是否熟悉,或者是熟練到了哪一種層次,浮於表面的理解仍是深刻原理的探索。

固然,也不要由於此次面試沒準備好,白白浪費了一次工做機會而氣餒,換個角度想一想,多面試幾家多踩幾個坑,對你以後的面試是有好處的。吃一塹長一智,面試結束後,回去把不懂的不會的問題,都在網上查查,瞭解清楚,深刻研究下它的原理。等到下一次面試,若是問一樣的或者相似的問題,你就成竹在胸了。

番外:這輪面試的結果是,通過激烈的崗位競爭,王小閏被那家公司給錄取了,感謝前面那個哥們爲本身踩的坑。同行也是競爭對手,王小閏不是贏了競爭對手,而是贏了昨天還不夠努力的本身。

柳傳志曾經說過,小公司裏作事,大公司裏作人。

最後祝你們都能找到適合本身的好工做!


更多文章我會第一時間更新在公衆號<閏土大叔>裏面,歡迎關注~

相關文章
相關標籤/搜索