校招筆試整理 牛客網 2020小米校招(1)
前端 筆試 選擇 牛客網 2020小米校招(1)
2020小米校招
localStorage和cookie
- 在現代瀏覽器中, cookie可以在跨域請求中被攜帶在請求頭中
- localStorage被設定後, 除非被清除, 否則永久有效
字串拼接
console.log('5' + 3, 5 + '3')
53 53
隱藏
- display:none , 不佔用文件流
- visibility: hidden, 佔用文件流
- opcity:0 , 對應的元素的事件聽監聽器還會觸發
選擇下一個兄弟節點p元素
div + p
打包構建前端專案
- gulp
- grunt
- webpack
- rollup
二叉樹遍歷
前序遍歷:
CABEFDHG
中序遍歷為:
BAFECHDG
後續?
BFEAHGDC
前序遍歷:根-左-右
中序遍歷:左-根-右
後序遍歷:左-右-根
在一個二叉樹的前序遍歷中,第一個元素即為根節點對應的節點值
在中序遍歷中,根節點將序列分為前後兩個部分,前部分為左子樹的中序序列,後部分為右子樹的中序序列.
所以根節點為C,左子樹為ABEF,右子樹為DHG
時間複雜度
以下哪種排序演算法的最壞時間複雜度可以做到O(n *log(n))?
遞迴排序
快速排序
氣泡排序
插入排序
遞迴排序
Linux作業系統的Cron服務用於
管理系統日常任務的排程
TCP/IP, UDP, HTTO
- UDP是面向無連線的, 不可靠的資料報服務
- TCP是面向連線的, 可靠的位元組流服務
- HTTP是應用層協議
HTTP協議中, 請求永久重定向的狀態碼為
301
-
301 永久重定向
-
302 臨時重定向
-
304 資源未改變
-
401 沒有訪問許可權, 需要身份認證
-
1XX 正在請求,
-
2XX 200 相應成功
-
3XX 重定向
-
403 許可權不夠
-
405 請求方法不被允許
-
5XX 500 伺服器程式碼錯誤
使用git不小心commit了, 如何恢復到上一狀態
git reset --soft HEAD^
git reset HEAD --soft 回撤提交到暫存區
git reset HEAD --hard 回撤提交 放棄變更(慎用)
git checkout 分支名 檢出分支
git revert HEAD 撤銷最近一次提交, git revert命令意思是撤銷某次提交. 它會產生一個新的提交, 雖然程式碼回退了, 但是版本依然是向前的
那些正則會匹配字串"b"
- /^b$/
- /^b\b/
- /[\b]*b/
"\b"元字元只匹配一個位置, 這個位置是單詞的分界符
事件的冒泡/捕獲
<div id="box1">
<div id="box2">
content
</div>
</div>
<script>
const $ = document.querySelector.bind(document);
const box1 = $('#box1');
const box2 = $('#box2');
box1.addEventListener('click', () => {
console.log('box1 true');
}, true);
box1.addEventListener('click', () => {
console.log('box1 false');
}, false);
box2.addEventListener('click', () => {
console.log('box2 true');
}, true);
box2.addEventListener('click', () => {
console.log('box2 false');
}, false);
</script>
執行結果:
box1 true, box2 true, box2 false, box1 false
由外向內捕獲, 由內向外冒泡
事件捕獲
捕獲型事件(event capturing):
事件從最不精準的物件(document物件)開始觸發, 然後到最精確(也可以在視窗級別捕獲事件, 不過必須由開發人員特別指定)
事件冒泡
冒泡型事件:
事件按照從最特定的事件目標到最不特定的事件目標(document物件)的順序觸發.
addEventListener(type, callback, useCapture)
ture表示在事件捕獲時觸發
事件的觸發階段:
事件捕獲->事件冒泡