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

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

關於技術性的題目

1.document.ready和onload的區別?vue

頁面加載完成有兩種事件,一是ready,表示文檔結構已經加載完成(不包含圖片等非文字媒體文件),二是onload,指示頁 麪包含圖片等文件在內的全部元素都加載完成。(能夠說:ready 在onload 前加載!!!)node

個人理解: 通常樣式控制的,好比圖片大小控制放在onload 裏面加載;react

而:jS事件觸發的方法,能夠在ready 裏面加載;webpack

2.關於一個變量提高的題目ios

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

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

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



答案

1.編程題,讓我說直接jion(',')變成數組,而後再split(','),哈哈git

可是要求要遞歸,遞歸嘛,也簡單喲,主要考察是否是數組,其次是遞歸結束條件github


精簡版web

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

2.

更精簡的實現

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.圖形本身腦補吧,哈哈哈

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


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.

三步

一、找基準(通常是以中間項爲基準)

二、遍歷數組,小於基準的放在left,大於基準的放在right

三、遞歸

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…

相關文章
相關標籤/搜索