面經整理

https://juejin.im/post/5a7aaf745188257a5a4c9a39  js算法
https://juejin.im/post/5aae076d6fb9a028cc6100a9
https://github.com/paddingme/Front-end-Web-Development-Interview-Question
阿里
1.如何讓各種情況下的div居中(絕對定位的div,垂直居中,水平居中)
2. display有哪些值?說明他們的作用
3. css定義的權重
4.談談對ES6的理解
5. requirejs實現原理
6. requirejs怎麼防止重複加載
7.ES6裏頭的箭頭函數的this對象與其他的有啥區別
箭頭函數的 this 始終指向函數定義時的 this,而非執行時。,箭頭函數需要記着這句話:“箭頭函數中沒有 this 綁定,必須通過查找作用域鏈來決定其值,如果箭頭函數被非箭頭函數包含,則 this 綁定的是最近一層非箭頭函數的 this,否則,this 爲 undefined”。
其他函數的this 永遠指向最後調用它的那個對象
8.tcp/udp區別
9.tcp三次握手過程
10.xss與csrf的原理與怎麼防範
11.mysql與 MongoDB的區別
12.出了個題目讓我寫設計數據庫
13.有沒有上傳過些什麼npm模塊

 騰訊
1. w3c事件與IE事件的區別  (當時回答的只想到冒泡跟捕獲)

W3C的事件模型優點是BubblingCapturing都支持,並且可以在一個DOM元素上綁定多個事件處理器,各自並不會衝突。並且在處理函數內部,this關鍵字仍然可以使用只想被綁定的DOM元素。另外function參數列表的第一個位置(不管是否顯示調用),都永遠是event對象的引用。

首先IE瀏覽器本身只支持Bubbling不支持Capturing;而且在事件處理的function內部this關鍵字也無法使用,因爲this永遠都只想window object這個全局對象。要想得到event對象必須通過window.event方式,最後一點,在別的瀏覽器中,它顯然是無法工作的。

2.IE與W3C怎麼阻止事件的冒泡
3.gulp底層實現原理
4.webpack底層實現原理
5.gulp與webpack區別
5.vuejs與angularjs的區別
6.vuex是用來做什麼的
7.說下你知道的響應狀態碼
8.xss與csrf的原理與怎麼防範
9.ajax的過程以及 readyState幾個狀態的含義
10.對nodejs瞭解多少


4.前端優化你知道哪些
5.webpack是用來幹嘛的
6.webpack與gulp的區別
7.es6與es7瞭解多少
8.說下你知道的響應狀態碼
9.xss與csrf的原理與怎麼防範
10.看過哪些框架的源碼

1.遇到過哪些瀏覽器兼容性問題
2. 清除浮動有哪幾種方式,分別說說
3.你知道有哪些跨域方式,分別說說
4. JavaScript有哪幾種類型的值
5.js繼承
6.js原型鏈以及特點
7.使用 new操作符時具體是幹了些什麼
8.tcp/udp區別
9. xss與csrf的原理與怎麼防範
10.你平時在寫代碼時遇到過些哪些困難,都是怎麼解決的
11.學習前端的方法以及途徑
12.怎麼實現兩個大整數的相乘說下思路


1.你學過數據結構沒,說說你都瞭解些什麼
2.你學過計算機操作系統沒,說說你都瞭解些什麼
3.你學過計算機組成原理沒,說說你都瞭解些什麼
4.你學過算法沒,說說你都瞭解些什麼
5.說下選擇排序,冒泡排序的實現思路
6.用過哪些框架
7.讓你設計一個前端css框架你怎麼做
8.瞭解哪些設計模式說說看
9.說下你所瞭解的設計模式的優點
10.vue源碼結構
11.狀態碼
12.瀏覽器緩存的區別
13.304與200讀取緩存的區別
14.http請求頭有哪些,說說看你瞭解哪些
15. xss與csrf的原理與怎麼防範
16.js中this的作用
17.js中上下文是什麼
18.js有哪些函數能改變上下文
19.你所瞭解的跨域的方法都說說看你瞭解的
20.要是讓你自己寫一個js框架你會用到哪些設計模式
21.平常在項目中用到過哪些設計模式,說說看
    美團
1.一來給了張紙要求寫js自定義事件

// 創建事件var evt = document.createEvent('Event');

// 定義事件類型evt.initEvent('customEvent', true, true);

// 在元素上監聽事件var obj = document.getElementById('testBox');

obj.addEventListener('customEvent', function(){

console.log('customEvent 事件觸發了');

}, false);

2.說下js中this
3.直接出了三道算法題半小時內(樓主算法渣只做出了一道)
4.前端跨域的方法
5.又出了了到js作用域的題


1.前端跨域方法以及說下怎樣實現
2.call與apply的區別
3.h5有個api能定位你知道是哪個嗎
geolocation

4.vue與angularjs中雙向數據綁定是怎樣實現的
5.webpack怎樣配置
6.nodejs中的文件怎麼讀寫
7.link和@import有什麼區別
  • 區別1:link是XHTML標籤,除了加載CSS外,還可以定義RSS等其他事務;@import屬於CSS範疇,只能加載CSS。
  • 區別2:link引用CSS時,在頁面載入時同時加載;@import需要頁面網頁完全載入以後加載。
  • 區別3:link是XHTML標籤,無兼容問題;@import是在CSS2.1提出的,低版本的瀏覽器不支持。
  • 區別4:ink支持使用Javascript控制DOM去改變樣式;而@import不支持。

8. cookies,sessionStorage 和 localStorage 的區別
9.說下你所瞭解的vuex
10.狀態碼
11.出了道url去參數的題讓在紙上寫
12.平時是怎麼學習知識的
13.看過哪些前端的書

1.position有哪些值,說下各自的作用
2.出了道佈局的題說下爲什麼是這樣子的
3.前端跨域問題
4.出了道作用域的題
5.狀態碼
6.ajax過程
7.讓寫個從幾個li中取下標的閉包代碼
1、移動端性能優化
2、lazyload如何實現
3、點透問題
4、前端安全
校招(現場面,一面掛)
1、原生js模板引擎
2、移動端性能優化
3、repaint和reflow區別
4、requirejs如何避免循環依賴
5、盒子模型
6、實現佈局:左邊一張圖片,右邊一段文字(不是環繞)
7、前端安全,csrf、xss原理及如何避免
1、window.onload和$(document).ready()的區別,瀏覽器加載轉圈結束時哪個時間點?
2、form表單當前頁面無刷新提交  target iframe
3、setTimeout和setInterval區別,如何互相實現?
4、如何避免多重回調—promise,promise簡單描述一下,如何在外部進行resolve()
5、margin坍塌?水平方向會不會坍塌
6、僞類和僞元素區別
7、vue如何實現父子組件通信,以及非父子組件通信
8、數組去重
9、使用flex佈局實現三等分,左右兩個元素分別貼到左邊和右邊,垂直居中
10、平時如何學前端的,看了哪些書,關注了哪些公衆號


1、說下對this的理解
2、實現bind函數



作者:_1900
鏈接:https://www.jianshu.com/p/d9824676a3f4
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯繫作者獲得授權並註明出處。

3、數組和鏈表區別,分別適合什麼數據結構
4、對mvc的理解
5、描述一個印象最深的項目,在其中擔任的角色,解決什麼問題
6、http狀態碼。。。401和403區別?
7、描述下二分查找

1、爲什麼選擇前端,如何學習的,看了哪些書,《js高級程序設計》和《你不知道的js》有什麼區別,看書,看博客,看公衆號三者的時間是如何分配的
2、如何評價bat
3、描述下在實習中做過的一個項目,解決了什麼問題,在其中擔任了什麼角色?這個過程存在什麼問題,有什麼值得改進的地方
4、如何看待加班,如果有個項目需要連續一個月加班,你怎麼看
5、遇到的壓力最大的一件事是什麼?如何解決的
6、平時有什麼愛好
7、自身有待改進的地方
8、n長的數組放入n+1個數,不能重複,找出那個缺失的數
9、手裏有什麼offer
10、你對於第一份工作最看重的三個方面是什麼
11、如何評價現在的前端
12、有什麼問題


1、爲什麼選擇前端,移動端性能優化
2、vue的特點?雙向數據綁定是如何實現的
Object.defineProperty
3、算法題:數組去重,去除重複兩次以上的元素,代碼題:嵌套的ul-li結構,根據input中輸入的內容,去除相應的li節點,且如果某個嵌套的ul下面的li都被移除,則該ul的父li節點也要被移除
4、印象最深的一個項目
5、頁面加載過程
6、瀏覽器如何實現圖片緩存

1.css 盒模型
2.css 佈局,左邊定寬右邊自適應。兩種方法,NEC上的用負邊距消除寬度,用彈性佈局。然後問我有沒有第三種。。。
3.冒泡和捕獲,事件流哪三個階段?除了冒泡和捕獲,還有目標階段。他們的先後順序,先捕獲,到了目標,再冒泡。(不要只記概念,要了解是幹麼用的)
4.實現事件代理。用jquery寫了。要求寫原生。子元素傳遞上來的應該是event.target或者e.srcElement。這個強調下IE和W3C的區別,建議寫一個封裝。
5.原型鏈。繼承的兩種方法。原型鏈繼承和類繼承。然後類繼承只繼承了實例屬性,沒有原型屬性。原型鏈繼承可以繼承所有。然後用apply和call怎麼繼承原型鏈上的共享屬性?通過空函數傳值。新建一個空函數C。C實例化後C的實例屬性就是空,然後用B的apply/call去繼承C,相當於繼承了C的實例屬性。
6. ajax。原生ajax的四個過程。實例化,open,send,onreadystatechange,然後是req,readyState和status。那麼問題是通過哪個屬性得到data?jquery裏是success回調裏面的形參。
responseText和responseXML。後者是XML解析了的。
7,閉包。簡單說一個閉包的應用。然後閉包的主要作用是什麼:封裝!

8,其他有一些項目的。簡歷上寫的。

Cookie 是否會被覆蓋,localStorage是否會被覆蓋。
事件代理js實現
Css實現動畫效果
Animation還有哪些其他屬性。
Css實現三列布局
Css實現保持長寬比1:1
Css實現兩個自適應等寬元素中間空10個像素。
requireJS的原理是什麼
如何保持登錄狀態
浮動的原理以及如何清除浮動
Html的語義化
原生js添加class怎麼添加,如果本身已經有class了,會不會覆蓋,怎麼保留?
Ajax原生
Jsonp的原理。怎麼去讀取一個script裏面的數據。
如果頁面初始載入的時候把ajax請求返回的數據存在localStorage裏面,然後每次調用的時候去localStorage裏面取數,是否可行。(直接說了不能保證數據的實時性,請求和實時性必然會有一方有所犧牲)
平時代碼寫的多不多。
Nodejs會不會。(demo跑過express,然後做過聊天室)
304是什麼意思?有沒有方法不請求不經過服務器直接使用緩存。(強緩存和協商緩存的命中和管理)

http請求頭有哪些字段
數組去除一個函數。用arr.splice。又問splice返回了什麼?應該返回的是去除的元素。
js異步的方法(promise,generator,async)
Cookie跨域請求能不能帶上
最近看什麼開源項目。
commonJS和AMD。
平時是怎麼學習的。
爲什麼要用translate3d(我回答爲了視覺需要,但是會影響css性能)
對象中key-value的value怎麼再放一個對象。(直接放也可以,轉成json字符串存數,讀取再解析)
Get和post的區別

Post一個file的時候file放在哪的?

你對組件的理解
組件的html怎麼進行管理
less和sass用過麼
nodejs用過麼
js的異步加載,promise的三種狀態,ES7中的async用過麼
js原型鏈的繼承
靜態屬性怎麼繼承
jquery和zepto有什麼區別
angular的雙向綁定原理
angular和react的認識(挖財用這個兩個框架,後來問了)
MVVM是什麼

你用了移動端的什麼庫類和框架?
移動端要注意哪些
適配有去考慮麼,retina屏幕啊?
rem是什麼?em是什麼?如果上一層就是根root了,em和rem等價麼?
怎麼測試的?
會自動化測試麼?
網易用什麼框架?你覺得優勢在哪?
你覺得你什麼技術最擅長?
你平時有沒有什麼技術的沉澱啊(然後對面先吹了一下自己)
單向鏈表怎麼查找有沒有環?
最後還問我實驗室的項目

其他還有一些忘了。


1.怎麼得到一個頁面的a標籤(就說了getElementByTagName和選擇器)
2.怎麼在頁面裏放置一個很簡單的圖標,不能用img和background-img
(說了canvas,或者一些庫有icon庫,data-icon).
3.正則表達式判斷url(只寫了判斷是否是http或者https開頭)
4.怎麼去除字符串前後的空格(正則匹配^\s和\s$並且替代,Jquery的$.trim,string.trim())
5.實現頁面的局部刷新

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章