前端三項

一html

1.1 盒模型 -> 標(biāo)準(zhǔn)盒、IE盒 -> 如何解決IE問題 -> DTD是什么 -> Html4中標(biāo)準(zhǔn)模式、兼容模式

1.2 布局( 相對、絕對、固定布局) -> flex,響應(yīng)式框架(bootstrap等)

1.3 float -> 清除浮動 -> BFC、IFC

1.5 語義化 -> H5元素(canvas、video、localstorage、sessionstorage)

1.6 瀏覽器的加載順序 ->(Dom tree,CSSOM, RenderTree,layout,painting) ->? 首屏?xí)r間、白屏?xí)r間 ->如何用chrome的performance做性能優(yōu)化

1.7 前端優(yōu)化 -> yahoo 35 條軍規(guī)

二? JavaScript

2.1 JS內(nèi)存模型 -> 值傳遞、引用傳遞 -> typeof

2.2 null、undefined? -> == && === (嚴(yán)格模式、隱式轉(zhuǎn)化)

2.3 對象 -> 為何需要對象、產(chǎn)生對象的幾種方式 -> new運算符-> 構(gòu)造函數(shù)、this -> 原型、原型鏈 ->繼承的五種方法 -> 源碼、組件應(yīng)用(underscore源碼、做過組件沒)

2.4 匿名函數(shù)和閉包 -> 閉包是用來做什么的 ->jQuery源碼-> 循環(huán)中的閉包 -> 異步調(diào)用中的閉包 ->ES6有什么新的解決方案 -> let的實現(xiàn)原理JavaScript匿名函數(shù)以及在循環(huán)中的匿名函數(shù) - 大雜燴 - SegmentFault

2.5 事件的冒泡機(jī)制 -> IE的冒泡機(jī)制區(qū)別

2.6 ajax-> 手寫原生ajax -> Http協(xié)議 ->? tcp/ip的網(wǎng)絡(luò)模型、三次握手、狀態(tài)碼 -> 請說出HTTP訪問的25個步驟(變態(tài)指數(shù)滿星)當(dāng)你在瀏覽器中輸入 baidu.com 并且按下回車后發(fā)生了什么?

2.7 跨域 Jsonp

2.8 cookie、session、nodejs session 原理及實戰(zhàn)

三 Nodejs

3.1 Nodejs是什么? -> 規(guī)范CMD, AMD ->模塊(import,export、file)Javascript的模塊管理 CMD AMD ES7等

3.2 單進(jìn)程 -> 何為進(jìn)程、線程、區(qū)別 -> 為何js是單進(jìn)程 -> eventloop->回掉-> 回掉地獄 -> promise ->手寫promise實現(xiàn) -> generator ->手寫generator實現(xiàn) ->aysnc -> 手寫 async源碼

3.3 測試-> 黑盒, 白盒 ->mocha

3.4 打包工具 -> webpack等

3.4 上線 -> linux,shell -> pm2

四 算法

4.1 二叉樹 -> 樹的各種操作:深度、廣度、翻轉(zhuǎn) -> B+樹、紅黑樹等 -> 數(shù)據(jù)庫索引

4.2 排序 -> 冒泡、快速、歸并排序、堆排序-> 冒泡排序的優(yōu)化、快速排序的四層優(yōu)化

4.3 搜索 -> 二分搜索

4.4 動態(tài)規(guī)劃 -> 背包問題、最長非遞增字符串、臺階問題

4.5 遞歸 -> N!、斐波那契級數(shù)、樹的各種遍歷


變量生命周期

全局變量和你的應(yīng)用程序,你的window,你的webpage同生,局部變量短命,當(dāng)函數(shù)調(diào)用時被造就,當(dāng)調(diào)用結(jié)束被刪除。

This關(guān)鍵字

在js中,被稱作this的東西,是一個“擁有”js代碼的對象。this的值,當(dāng)用在一個函數(shù)里,是一個”擁有“函數(shù)的對象;當(dāng)用在一個對象里,是對象本身。this關(guān)鍵字,在一個對象構(gòu)造器里邊沒本身有值,僅僅是新對象的替代品。當(dāng)構(gòu)造器被用于構(gòu)造對象時this的值會變成新對象。

注意:this不是一個變量,它是關(guān)鍵字,你不能改變this值。


js中的面向?qū)ο?/p>

面向?qū)ο笤趈s里有兩個層次的含義,第一種是會使用面向?qū)ο蠛瘮?shù);第二種是構(gòu)造面向?qū)ο蠛瘮?shù)。

js也是面向?qū)ο笾械囊环N寫法,不過相對于java,js是一種弱數(shù)據(jù)類型,并不是嚴(yán)格意義上的面向?qū)ο?。但是jq就是使用面向?qū)ο蟮膶懛▌?chuàng)作出來的js庫。

1. 抽象:抓住核心問題?

2. 封裝:即把能夠?qū)崿F(xiàn)功能的函數(shù)寫成封裝起來,在面向?qū)ο罄锝凶龇椒?。簡單來說就是把實現(xiàn)功能的函數(shù)寫成方法。?

3. 繼承:繼承的意思是,在實現(xiàn)同一種功能的前提下,新對象可以使用舊對象的屬性和方法。?

4. 多態(tài):一個變量在引用不同類型的情況下的不同狀態(tài)。多態(tài)開發(fā)在開發(fā)組件和模塊化開發(fā)的時候能節(jié)省很多資源。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容