最近開始了幾次面試,雖然還不知道結果如何,但是還是要記錄下來進行一個總結,同樣也希望對正在准備面實習生的童鞋們有所幫助~
- JavaScript :
- addEventListener最后一個參數是做什么用的 答:規定事件是冒泡還是捕獲。false是冒泡,true是捕獲
- 什么是冒泡,什么是捕獲 答:當一個元素觸發了一個事件之后就會像上層傳遞直至body,document。捕獲是從最不具體的傳至最具體的
- 所有的事件都可以冒泡么 答:不是,blur focus change不可冒泡
- 怎么取消事件冒泡 答:eve.preventDefault(阻止事件默認行為)(這都沒答上來,我一定是個逗比)
- 怎么判斷是不是數組 答:a instanceof Array Array.isArray(a) 他問我還有么~ 所以我說試一下Array的內置函數,可以使用是Array不可以則不是,其實還有 Object.prototype.toString === '[object Array]'
- 怎么把一個類數組對象轉化為數組 答:Array.prototype.slice.call();
- 講一下繼承:巴拉巴拉的講了一大堆(因為他看了我的博客)
- CSS:
- float高度塌陷解決方案: clearfix:after{clear:both;content:".";height:0;display:block;visibility:hidden;}(給自己挖了個坑after是偽元素不是偽類,我說錯了~)
- line-height像素單位和百分比的單位的計算方法: length 設置固定的行間距。單位em,px,pt等等。百分比% ,基於當前字體尺寸的百分比行間距。(我覺得我答得是對的,但是他有重復了一遍:我說的是line-height)
- 一個ul里有若干個li,想要每個li都有一個border-bottom,最后一個li不想要boder-bottom要怎么做:(ul:last-child{border-bottom:none;}或者給最后一個li加一個class選擇器設置border:none;(他說還有,查了一下什么加載jQuery可之類的~)
- css 選擇器過長怎么判斷他的優先級:行內樣式1000 -- id100 -- 類、偽類、屬性選擇器10 -- 類型選擇器、偽元素選擇器1 通過相加計算大的優先級高,值相等的話后聲明的優先級高。
- 算法(一個都沒答上來):
- 優先隊列
- 堆
- 快速排序
-
- 項目
- css3翻書是怎么做的呀? 巴拉巴拉講了一堆
- 你這個翻頁有個bug呀,什么原因怎么改呀? z-index的問題,怎么改布吉島~
- canvas繪圖怎么做的呀? 巴拉巴拉講了一堆
- 你這個繪制有bug呀,什么原因怎么改呀? 滾動條的問題,怎么改又布吉島。。。(加上滾動條的距離,面試官告訴我的~)
- 版本控制
- 了解版本控制器么? 了解一些github
- 基本操作會么? 我都用的windows的圖形界面進行操作的(面試官心中可能有一萬只草泥馬在奔騰....)
- github的工作原理是什么呀? 我把我的代碼上傳到github的倉庫上,然后別人可以下載進行代碼添加然后上傳更新倉庫,我可以再下載更新過的繼續進行添加修改
- 那如果你們兩個修改同一份代碼發生沖突怎么辦? 我知道的方法只有回滾,就是和隊友交流看誰的代碼更重要,然后進行一個回滾操作。
- 只能這樣么,必須有一個人犧牲么? 我了解到github的功能其實非常強大,所以肯定有更好的方法嗎,只是我現在對github的使用僅限於自己代碼的存儲以及一些小的修改,所以並不了解更好的方法。。。。
- JavaScript
- Array都有哪些方法呀? join slice splice reverse sort foreach every等迭代方法 暫時只能想起這些
- sort方法工作原理是什么樣的? 我不知道怎么講他的工作原理,只知道他在排序上的問題巴拉巴拉的講了一下。。。
- 那如果想要sort排序數字怎么辦? function(a,b){return b-a;}這樣是降序
- String有哪些方法呀? concat charAt slice substr substring 等等(其實現在覺得應該加一句說string是基本數據類型,沒有方法,string的方法是String構造函數創建的引用類型的方法~)
- 那replace方法怎么用的呀? 我很認真的答成了splice的用法。。。。(兩個參數 1.RegExp對象或者是字符串2.字符串或者函數 然后替換可以用正則進行全局替換。。。。)
- css
- 一個div怎么垂直居中呀? 餓了么說過了~
- css3你常用的屬性有什么呀? 動畫的transform transmation border-radious box-sizing box-shadow
- 其他
- 你常用的代碼編寫工具是什么? sublime text
- 你要修改很多相同的地方怎么辦? 選中一個 按Ctrl+D 選取多個 然后一起改
- photoshop怎么樣? 可以進行簡單的psd頁面圖的ps 不會人物風景的美化
- 想要導出一個文件提及比較小的png怎么做 存儲為web所用格式。。。(應該不對~)
- 項目
-
- 項目(這里聊了很久)
- 給我介紹一下你都做過哪些項目吧? 巴拉巴拉一堆沒有什么特定答案~
- 你是怎么進行團隊項目的合作呢? 巴拉巴拉一堆沒有什么特定答案~
- 你現在在學些什么呀? Linux下Qt開發~~巴拉巴拉~
- 做前端有用不到C++,你學他有什么用呀? 我不只是一個寫前端的,我還是一個程序員,C和C++是這些語言的基礎,所以巴拉巴拉~
- 你最滿意的C++程序講一下? Qt呀,類呀~什么的~
- CSS
- 很長一段話要進行截取,超過之后是三個點怎么做? 不考慮兼容的話CSS3有 text-overflow:ellipsis 然后或者overfloww:hidden 再在邊框前側加入一個三個點的span
或者用偽元素:after{content:"..."}之類的吧 - 時間太久不記得了~~~
- 很長一段話要進行截取,超過之后是三個點怎么做? 不考慮兼容的話CSS3有 text-overflow:ellipsis 然后或者overfloww:hidden 再在邊框前側加入一個三個點的span
- JavaScript
- 鼠標滑過一個元素出現一個彈出層 就dom 0級來舉例子的話是 onmouseover dispaly:block
- 鼠標滑的快不讓他出現怎么辦 設置一個setTimeout 當鼠標在上面停留的時間小於設定的時間的話他還沒有出來事件就被取消掉了
- 那setTimeout應該設置多久的時間呢? 這個我不知道有什么約定俗成的時間設置,如果是我的話,應該回去試一下,看那個時間合適
- 現在我想要這個元素在頁面下方是彈出層在上方顯示,元素在上方時彈出層在下方顯示? 判斷元素距離頁面底端的位置,位置大於彈出層的高度的話就在下方彈出,否則在上方彈出
- 如果我現在想把他做成一個工具給別人用要怎么做? 呃~首先使用模塊化,注意不要和其他的方法什么的有沖突,然后子啊里面設置方法出入所需的參數,比如那個元素,什么事件,彈出層的大小等等
- 那想做一個好的工具參數肯定很多,你怎么能方便別人使用呢?畢竟參數這么多別人會記不住的 呃~我可能會設置成一個對象,傳入對象的屬性,這樣就方便記住了。
- 其他
- 你覺得淘寶首頁有哪些技術優勢? 頁面很大,要承載的東西也很多,但是可以讓用戶清晰明了的找到想要找的東西證明布局做的非常好,然后里面包括圖片輪播呀個中點擊事件呀什么的事件也很多,所以避免事件沖突也很膩害~
- 那你覺的你用多久可以寫出淘寶首頁? 呃~一個星期吧(這個可真的不知道什么樣的答案合適)
- 你為什么想來淘寶技術部? 因為技術牛,而且有很多大牛在這個團隊里,如果我有機會的成為其中一員的話就業可以學到更多的東西啦~
- 你覺得你有什么優勢可以來淘寶技術部? 嘿嘿,就不告訴你我是怎么答得~~
- 項目(這里聊了很久)
- position 定位
- dom操作元素
- 兩列布局
- inline-block空隙怎么解決
- 事件代理
- 什么是冒泡什么是捕獲
- BFC,haslayout是什么,怎么觸發
- C++
- jQuery取到的元素和原生Js取到的元素有什么區別
- CSS
- 如何平鋪一張背景圖? css方法:設置一張圖片 {position: absolute; top: 0; left: 0; bottom: 0; right: 0; z-index: -1;}
js方法: 判斷瀏覽器高度,設置圖片的高度 - 如果讓圖片按比例放大縮小呢? 用Js來判斷寬高,然后按比例放大(面試官說屏幕壁板都是橫屏,所以width設置為100%就可以了)
- Doctype的作用
- 漸進增強 優雅降級
- css hack
- 條件注釋
- dispaly的值
- css3動畫的性能優化你知道什么? 我只答了最好不要使用all
- 什么是語義化
- html5 語義化的標簽
- 如何平鋪一張背景圖? css方法:設置一張圖片 {position: absolute; top: 0; left: 0; bottom: 0; right: 0; z-index: -1;}
- JavaScript
- 響應式 我只答了@media
- setTimeout 和setInterval的區別
- setTimeout時間設為0是否立即執行,為什么?
- 構造函數的運行機制
- this的綁定
- call()和apply()的區別
- Js繼承有哪些?原型繼承是什么樣的
- 解釋一下模塊化,舉例模塊化的方法
- GET和POST的區別
- 函數聲明和函數字面量的區別
- jQuery的聯級有什么好處
- 其他
- http狀態碼都知道那些
- 數組去重
- 怎么構造一棵樹
- 十進制數判斷有多少位二進制碼
- 性能優化了解多少
- JavaScript :
后面的問題答案基本網上都有,偷個懶先不寫了。如果還有后續的話我會繼續補充的~同樣附上我的github地址,里面是我的一些項目以及自己的簡歷(不要玩兒壞呦~)https://xiaoruo.github.io/