如何輕鬆拿到大廠面試offer | 掘金技術徵文

wuliDream發表於2018-03-24

朋友推薦去平安子公司一帳通去面試,沒有初面,直接進入二面和三面,蠻簡單的,過了,但放棄入職。下面談談面試題吧。

關於技術性的題目

1.document.ready和onload的區別?

頁面載入完成有兩種事件,一是ready,表示文件結構已經載入完成(不包含圖片等非文字媒體檔案),二是onload,指示頁 麵包含圖片等檔案在內的所有元素都載入完成。(可以說:ready 在onload 前載入!!!)

我的理解: 一般樣式控制的,比如圖片大小控制放在onload 裡面載入;

而:jS事件觸發的方法,可以在ready 裡面載入;

2.關於一個變數提升的題目

function a(){}
var a
console.log(typeof a) //function複製程式碼

還有就是介紹專案經驗巴拉巴拉。。。還問我接收不接收996,瞬間心裡一萬cnm,當他問我的時候,我覺得是壓力測試,我就說 如果正常的是996,是不接收的,如果專案急,接收加班和週六趕專案。。。說了下平安薪資體系,年終獎4.8個月薪資,百分之多少能拿到吧,一般人都能拿到,以上是二面,三面是專案經理,也是問了些專案,根據自己說的再提一些問題。。。很好應付,我的體驗是,只要感到專案經理不是搞前端的,面試立場自己完全hold住。。。然後就結束啦,哈哈哈。。。接下來就是人事打電話,準備好多東西,薪資證明,簡歷要輸入平安簡歷庫中心,還有iq,eq什麼測試,到這一步我就沒去做,好麻煩,都沒告訴我給我多少薪資,人事說經過以上步驟才能定薪,後來果斷放棄。。。沒想到好事發生了,我司給我漲薪了。。。

下面是平安銀行的面試,一個朋友的筆試題(直接貼圖,哈哈哈)

如何輕鬆拿到大廠面試offer | 掘金技術徵文

如何輕鬆拿到大廠面試offer | 掘金技術徵文如何輕鬆拿到大廠面試offer | 掘金技術徵文

答案

1.程式設計題,讓我說直接jion(',')變成陣列,然後再split(','),哈哈

但是要求要遞迴,遞迴嘛,也簡單喲,主要考察是不是陣列,其次是遞迴結束條件

如何輕鬆拿到大廠面試offer | 掘金技術徵文

精簡版

const deepFlatten = arr => [].concat(...arr.map(v => (Array.isArray(v) ? deepFlatten(v) : v)));複製程式碼

2.如何輕鬆拿到大廠面試offer | 掘金技術徵文

更精簡的實現

const groupBy = (arr, fn) =>
  arr.map(typeof fn === 'function' ? fn : val => val[fn]).reduce((acc, val, i) => {
    acc[val] = (acc[val] || []).concat(arr[i]);
    return acc;
  }, {});複製程式碼

plus:演算法精簡版推薦看github.com/Chalarangel… 蠻不錯的

3.4.圖形自己腦補吧,哈哈哈

下面是車輪互聯的筆試題(還是我朋友面的)

如何輕鬆拿到大廠面試offer | 掘金技術徵文

1.物理解析度是硬體所支援的,邏輯解析度是軟體可以達到的,互轉的話乘以畫素倍率

詳細的說:

在iphone3gs的時候,邏輯解析度是320*480,物理解析度也是320*480

iphone4出了之後,邏輯解析度和3gs一樣是320*480,顯示的內容是一樣多的,但是物理解析度變成了640*960,原來在3gs的一個畫素內容,在iphone4上則填充了4個畫素,因此雖然內容顯示還是一樣多,但是iphone4s的螢幕精細度比3gs高了2倍,畫素倍率是2.

iphone5/5s/SE邏輯解析度是320*568,和iphone4相比,邏輯解析度寬度不變,高度增加了,所以相比iphone4,寬度內容顯示一樣多,但是高度內容增加。而物理解析度是640*1136,畫素倍率和iphone4/4s一樣,是2倍

iphone6的邏輯解析度是375*667,比iphone4/4s/5/5s/SE邏輯解析度都要大,所以顯示的內容更多。物理解析度是750*1334,所以和上邊談到的機型一樣,仍然是2倍的畫素倍率

iphone6plus邏輯解析度是414*736,物理解析度是1080*1920,畫素倍率約等於2.6. 渲染畫素是1242*2208。做設計圖的時候,也是假設1242*2208的物理解析度(3的倍率)來做圖的,系統會把圖片壓縮到1080*1920。所以6plus做設計圖的尺寸1242*2208是基於假設,實際物理解析度是1080*1920。據說是因為產能還有耗電的考慮,以後效能提升,也許會直接用1242*2208

2. BFC(Block formatting context)直譯為"塊級格式化上下文"。它是一個獨立的渲染區域,只有Block-level box參與, 它規定了內部的Block-level Box如何佈局,並且與這個區域外部毫不相干。

   BFC佈局規則:

  1. 內部的Box會在垂直方向,一個接一個地放置。
  2. Box垂直方向的距離由margin決定。屬於同一個BFC的兩個相鄰Box的margin會發生重疊
  3. 每個元素的margin box的左邊, 與包含塊border box的左邊相接觸(對於從左往右的格式化,否則相反)。即使存在浮動也是如此。
  4. BFC的區域不會與float box重疊。
  5. BFC就是頁面上的一個隔離的獨立容器,容器裡面的子元素不會影響到外面的元素。反之也如此。
  6. 計算BFC的高度時,浮動元素也參與計算

哪些元素會生成BFC:

  1. 根元素
  2. float屬性不為none
  3. position為absolute或fixed
  4. display為inline-block, table-cell, table-caption, flex, inline-flex
  5. overflow不為visible

3.同源是指,域名,協議,埠相同,三者有一個不同,則為跨域

解決方案:

 node代理,具體自己起個node服務,在node中轉發來自瀏覽器的請求,node服務和瀏覽器請求要同源,然後轉發攜帶具體引數,cookie...,轉發到後端的跨域介面,轉發庫可以用axios,支援在node,和瀏覽器都可以使用(具體實現可以參照github)。

nginx配置代理(基礎配置,可以參照我之前寫的文章)

在react,vue中可以用webpack-dev-server配置代理

跨域資源共享cors,後端設定Access-Control-Allow-Origin:*

jsonp

。。。其他感覺現實開發中,並不是很實用

4.var reg = /^[\u4e00-\u9fa5]{1}[A-Z]{1}[A-Z_0-9]{5}$/

5.

三步

1、找基準(一般是以中間項為基準)

2、遍歷陣列,小於基準的放在left,大於基準的放在right

3、遞迴

        function quickSort(arr){
            //如果陣列<=1,則直接返回
            if(arr.length<=1){return arr;}
            var pivotIndex=Math.floor(arr.length/2);
            //找基準,並把基準從原陣列刪除
            var pivot=arr.splice(pivotIndex,1)[0];
            //定義左右陣列
            var left=[];
            var right=[];

            //比基準小的放在left,比基準大的放在right
            for(var i=0;i<arr.length;i++){
                if(arr[i]<=pivot){
                    left.push(arr[i]);
                }
                else{
                    right.push(arr[i]);
                }
            }
            //遞迴
            return quickSort(left).concat([pivot],quickSort(right));
        }
複製程式碼

6.  1.最高優先順序是 (直接在標籤中的設定樣式,假設級別為1000)<div style="color:Red;"></div>

  2.次優先順序是(ID選擇器 ,假設級別為100)   #myDiv{color:Red;}
  3.其次優先順序是(類選擇器,假設級別為10) .divClass{color:Red;}
  4.最後優先順序是 (標籤選擇器,假設級別是 1)  div{color:Red;}
  5.那麼後代選擇器的優先順序就可以計算了啊
  比如 .divClass  span { color:Red;}   優先順序別就是:10+1=11複製程式碼

7.。。。

下次更新剩餘題目答案。。。

總結

現在面試,小公司一般問框架和看你個人的學習能力,比如我公司,我一般看他的學習和研究能力,大公司一般看基礎能力,我沒怎麼面過,不過網上很多都有文章參考。想要面試成功,自己要有紮實基礎,業務能力,當然表達也很重要,個人的研究喜歡編碼,一些公司也很看重。

juejin.im/post/5aaf2a…


相關文章