目錄 |
---|
一:目錄 |
二:前言 |
2-1: 關於dog蛋 |
2-2 :寫給大家 |
三 HTML |
3.1 HTML 語義化 |
3.2 HTML5 新標籤 |
3.3 常見瀏覽器及其內核 |
四 CSS |
4.1 CSS 盒模型 |
4.2 CSS 單位 |
4.3 CSS 選擇器及優先級 |
4.4 CSS 常見佈局 |
4.5 CSS3 新特性 |
4.6 BFC |
五 JavaScript |
5.1 原型與原型鏈 |
5.2 閉包 |
5.3 淺拷貝與深拷貝 |
5.4 防抖與節流 |
5.5 ES6 |
5.6 promise |
5.7 Generator,async/await相關 |
5.8 數組操做 |
六 Vue |
6.1 MVVM |
6.2 生命週期 |
6.3 雙向數據綁定 |
6.4 Virtual DOM |
6.5 template 編譯 |
6.6 key |
6.7 nextTick |
6.8 父子組件通信 |
6.9 父子組件生命週期 |
6.10 keep-alive |
6.11 vuex用法 |
七 瀏覽器 |
7.1 一個url從輸入到顯示的過程 |
7.2 重繪與迴流 |
7.3 內存泄漏 |
7.4 瀏覽器兼容性 |
八 網絡協議 |
8.1 HTTP/HTTPS |
8.2 HTTP 狀態碼 |
8.3 跨域問題 |
首先對於你們所說的互聯網寒冬本蛋不發表任何意見,此圖爲證 css
你們好,我是前端經驗長達三年多的前端dog蛋,會唱跳,敲代碼,喜歡ctrl-c,ctrl-v,hah~html
雖然已通過了金三銀四但身邊找工做的小夥伴仍是不少的,不少小夥伴擔憂如今是招聘淡季怕很差找工做,其實換個思惟方式,既然如今是招聘淡季那確定也是求職淡季,因此相對來講仍是好找的,但願找工做的小夥伴們放平心態,對每次的面試都要進行記錄和總結,相信很快就能夠收到滿意的offer的。前端
<header>
,<footer>
,<<aside>
,<nav>
,<canvas>
,<video>
等vue
Chrome | Firefox | Safari | IE | Opera | |
---|---|---|---|---|---|
內核 | Blink | Gecko | Webkit | Trident | Blink |
能夠經過css3新增的的box-sizing屬性進行設置:css3
/* 標準模型 */git
box-sizing:content-box;es6
/IE模型/github
box-sizing:border-box;面試
border-box 中,整個 div 的寬、高,包括 margin、padding、border。vuex
content-box 中,整個 div 的寬、高,則不包括上面元素。
單位 | 描述 |
---|---|
px | 像素。計算機屏幕上的一個點爲 1px。 |
em | 相對單位。相對於父元素計算,假如某個 p 元素爲 font-size: 12px,在它內部有個 span 標籤,設置 font-size: 2em,那麼,這時候的 span 字體大小爲:12 * 2 = 24px |
rem | 相對單位。相對於根元素 html 的 font-size,假如 html 爲 font-size: 12px,那麼,在其當中的 div 設置爲 font-size: 2rem,就是當中的 div 爲 24px。 |
rpx | 微信小程序相對單位。1rpx = 屏幕寬度 / 750 px。在 750px 的設計稿上,1rpx = 1px。 |
1:通配符:*
2:ID 選擇器:#ID
3:類選擇器:.class
4:元素選擇器:p、a 等……
5:後代選擇器:p span、div a 等……
6:僞類選擇器:a:hover 等……
7:屬性選擇器:input[type="text"] 等……
8:子元素選擇器:li:firth-child、p:nth-child(1) 等……
CSS 選擇器權重
!important -> 行內樣式 -> #id -> .class -> 元素和僞元素 -> * -> 繼承 -> 默認
transform:旋轉、縮放、移動或者傾斜
animation:動畫
gradient:漸變
shadow:陰影
border-radius:圓角
防抖: 任務頻繁觸發的狀況下,只有任務觸發的間隔超過指定間隔的時候,任務纔會執行(有個輸入框,輸入以後會調用接口,獲取聯想詞。可是,由於頻繁調用接口不太好,因此咱們在代碼中使用防抖功能,只有在用戶輸入完畢的一段時間後,纔會調用接口,出現聯想詞。)
節流:指定時間間隔內只會執行一次任務。 使用場景:
不防抖和節流會損害頁面性能
promise實現原理:手把手教你實現一個完整的 Promise
阮一峯:Generator,async,Thunk,co 系列
具體步驟: 第一步:須要observe的數據對象進行遞歸遍歷,包括子屬性對象的屬性,都加上setter和getter 這樣的話,給這個對象的某個值賦值,就會觸發setter,那麼就能監聽到了數據變化
第二步:compile解析模板指令,將模板中的變量替換成數據,而後初始化渲染頁面視圖,並將每一個指令對應的節點綁定 更新函數,添加監聽數據的訂閱者,一旦數據有變更,收到通知,更新視圖
第三步:Watcher訂閱者是Observer和Compile之間通訊的橋樑,主要作的事情是:
一、在自身實例化時往屬性訂閱器(dep)裏面添加本身
二、自身必須有一個update()方法
三、待屬性變更dep.notice()通知時,能調用自身的update()方法,並觸發Compile中綁定的回調,則功成身退。
第四步:MVVM做爲數據綁定的入口, 整合Observer、 Compile和Watcher三者, 經過Observer來監聽本身的model 數據變化,經過Compile來解析編譯模板指令,最終利用Watcher搭起Observer和Compile之間的通訊橋樑,達到 數據變化->視圖更新;視圖交互變化(input)->數據model變動的雙向綁定效果。
詳情步驟: 首先,經過compile編譯器把template編譯成AST語法樹(abstractsyntaxtree即源代碼的抽象語法結構的樹狀表現形 式),compile是createCompiler的返回值,createCompiler是用以建立編譯器的。另外compile還負責合併option。
而後,AST會通過generate(將AST語法樹轉化成renderfuntion字符串的過程)獲得render函數,render的返回值是 VNode,VNode是Vue的虛擬DOM節點,裏面有(標籤名、子節點、文本等等)
子-> 父: on+emit
父<>子: on.sync(語法糖)來的
兄弟 : event bus | vuex
<component:is='curremtView' keep-alive></component>
vuex | vue |
---|---|
state | data |
getters | computed |
mutations | methods(同步操做) |
actions | methods(異步操做 |
1-1:DNS解析
1-2:TCP三次握手
1-3:發送請求,分析url,設置請求報文(頭,主題)
1-4:把請求回來的html代碼 通過解析生成DOM樹
1-5:解析css代碼生成,生成樣式樹
1-6:結合DOM和style樹生成渲染樹
2.定時器:未被正確關閉,致使所引用的外部變量沒法被釋放。
3.事件監聽:沒有正確銷燬(低版本瀏覽器可能出現)。
4.閉包:會致使父級中的變量沒法被釋放。
5.DOM 引用:DOM 被刪除時,內存中的引用未被正確清空。
如何查看內存變化狀況?
使用 Chrome 的 Timeline(新版本 Performance)進行內存標記,可視化查看內存的變化狀況,找出異常點。
PC端兼容性
移動端兼容性
HTTPS:HTTPS(全稱:Hypertext Transfer Protocol over Secure Socket Layer),是以安全爲目標的 HTTP 通道,簡單講是 HTTP 的安全版。即 HTTP 下加入 SSL 層,HTTPS 的安全基礎是 SSL,所以加密的詳細內容就須要 SSL。 它是一個 URI scheme(抽象標識符體系),句法類同 http: 體系。用於安全的HTTP數據傳輸。https:URL 代表它使用了 HTTP,但 HTTPS 存在不一樣於 HTTP 的默認端口及一個加密/身份驗證層(在 HTTP 與 TCP 之間)。這個系統的最初研發由網景公司進行,提供了身份驗證與加密通信方法,如今它被普遍用於萬維網上安全敏感的通信,例如交易支付方面。
而後,常見的狀態碼: