朋友推薦去平安子公司一賬通去面試,沒有初面,直接進入二面和三面,蠻簡單的,過了,但放棄入職。下面談談面試題吧。前端
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*22082. BFC(Block formatting context)直譯爲"塊級格式化上下文"。它是一個獨立的渲染區域,只有Block-level box參與, 它規定了內部的Block-level Box如何佈局,而且與這個區域外部絕不相干。
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.。。。
下次更新剩餘題目答案。。。
如今面試,小公司通常問框架和看你我的的學習能力,好比我公司,我通常看他的學習和研究能力,大公司通常看基礎能力,我沒怎麼面過,不過網上不少都有文章參考。想要面試成功,本身要有紮實基礎,業務能力,固然表達也很重要,我的的研究喜歡編碼,一些公司也很看重。