web前端怎么樣才能入門(mén)

web前端怎么樣才能入門(mén),首先我們要從什么是初級(jí)web前端工程師說(shuō)起:

按照我的想法,我把前端工程師分為了入門(mén)、初級(jí)、中級(jí)、高級(jí)這四個(gè)級(jí)別:


入門(mén)級(jí)別指的是了解什么是前端(前端到底是什么其實(shí)很多人還是不清楚的),了解基本的html、css和javascript語(yǔ)法(這些語(yǔ)方面的東西網(wǎng)上隨便搜一下就有很多很多,基本的語(yǔ)法是整個(gè)技術(shù)體系最重要 的東西了,領(lǐng)先的 Web 技術(shù)教程 ),可以根據(jù)設(shè)計(jì)師的設(shè)計(jì)圖在不考慮兼容性的情況下把頁(yè)面做出來(lái),了解過(guò)一些框架的使用(例如爛大街但是依然牛逼的jQuery、zepto、 bootstrap等等)。

在經(jīng)歷過(guò)入門(mén)的階段,已經(jīng)了解了前端要做什么,并且把基本的語(yǔ)法學(xué)習(xí)過(guò)了可以獨(dú)立做一些簡(jiǎn)單的頁(yè)面了,那么就要繼續(xù)學(xué)習(xí)達(dá)到初級(jí)前端工程師的水平,對(duì)于初級(jí)的前端工程師需要了解的就特別多了,需要對(duì)整個(gè)前端有一個(gè)清晰的認(rèn)識(shí),并且熟練使用各種技術(shù)。


初級(jí)前端工程師:首先要知道的就是如何處理各種瀏覽器的兼容處理(比如說(shuō)在IE瀏覽器中的createElement有什么不同等等內(nèi)容),現(xiàn)在基本上每個(gè)公司在招聘的時(shí)候都會(huì)要求熟練html5, css3, javascript,這個(gè)熟練的意思就是信手拈來(lái)。

在下面會(huì)說(shuō)初級(jí)前端工程師應(yīng)該具體的學(xué)習(xí)哪些知識(shí),然后就是要了解各種css的預(yù)處理器和后處理器, 還有會(huì)使用常見(jiàn)前端的MV*框架(angularjs, backbone,reactjs等等)并知道這些框架的原理,另外就是要熟練使用nodejs,要會(huì)使用基于node的各種前端構(gòu)建工具 (grunt,gulp等等),熟練使用github或gitlab,對(duì)模塊化、組件化、工程化、語(yǔ)義化有一個(gè)比較深入的了解,最后要知道如何開(kāi)發(fā)移動(dòng)端 的頁(yè)面,如何去優(yōu)化一個(gè)頁(yè)面的性能。

初級(jí)web前端工程師的技術(shù)體系

  1. HTML部分

首先是要掌握一些常用標(biāo)簽的使用和他們的各個(gè)屬性,這些常用的標(biāo)簽我總結(jié)了一下有以下這些:

  • html:頁(yè)面的根元素。
  • head:頁(yè)面的頭部標(biāo)簽,是所有頭部元素的容器。
  • body:頁(yè)面的主體標(biāo)簽,頁(yè)面展現(xiàn)的內(nèi)容就放置在這里面。
  • title:頁(yè)面的標(biāo)題。
  • meta:位于文檔的頭部,提供頁(yè)面的元信息,包括關(guān)鍵字、描述等等。
  • link:定義文檔與外部資源的關(guān)系,最常用的用途就是引入樣式表。
  • script:腳本標(biāo)簽,可以把js腳本代碼放置在這個(gè)標(biāo)簽內(nèi),也可以使用這個(gè)標(biāo)簽的src屬性引入一個(gè)外部標(biāo)簽。
  • style:樣式標(biāo)簽,可以把css代碼寫(xiě)在這個(gè)標(biāo)簽中。
  • a:超鏈接,href屬性代表要鏈接到的地方,target屬性代表打開(kāi)方式。
  • img:圖像標(biāo)簽,src屬性表示圖片的位置。
  • form:表單元素,它內(nèi)部的input、select、textarea等標(biāo)簽都是比較重要的。
  • div:定義文檔中的分區(qū)或節(jié),可以使用div來(lái)進(jìn)行頁(yè)面的布局等操作。
  • 另外還有ul、li、p、button、iframe、p、table等標(biāo)簽也很常用,nav、section、article、header、aside、footer等語(yǔ)義化標(biāo)簽也需要了解一下。

除了要了解上面這一些標(biāo)簽之外,還需要對(duì)一些新的HTML5的API有一定的了解:

  • audio、video標(biāo)簽。
  • Canvas:定義圖形,比如圖表和其他圖像。
  • input標(biāo)簽的accept屬性,email、phone、url等類(lèi)型。
  • getElementByClassName根據(jù)class名來(lái)獲取一個(gè)元素結(jié)點(diǎn)。
  • Multiple file selection多文件選擇屬性。
  • html的import、template
  • process標(biāo)簽,webGL等內(nèi)容。

還有一些要知道的知識(shí)點(diǎn):

1.doctype的作用。
2.unicode、utf8等編碼的原理和區(qū)別。
3.如何進(jìn)行頁(yè)面性能優(yōu)化。
4.png、jpg、webp、gif等圖片格式的不同的優(yōu)勢(shì)。
5.HTML行內(nèi)元素與塊級(jí)元素的區(qū)別。
6.移動(dòng)web端開(kāi)發(fā)常用head標(biāo)簽。
7.web語(yǔ)義化。
8.瀏覽器中的緩存原理。

  1. CSS部分

關(guān)于css這一塊,我的看法就是網(wǎng)上下載一個(gè)chm格式的css的參考手冊(cè),然后根據(jù)手冊(cè)里面寫(xiě)的一個(gè)個(gè)的都敲一下。

css大體分為下面這幾塊知識(shí)點(diǎn):
① 定位布局
1.position屬性的7個(gè)值(static | relative | absolute | fixed | center | page | sticky)分別有什么作用和不同?
2.實(shí)現(xiàn)品字形布局或者是三欄布局(左右寬度固定,中間適應(yīng)屏幕)。
3.浮動(dòng)與清除浮動(dòng)的方法,flex布局,grid布局。
② 盒子模型
1.margin、padding、border這三個(gè)屬性。
2.伸縮盒相關(guān)內(nèi)容。
3.Multi-column Layout Module多列布局模型。
③ 文本字體
1.強(qiáng)制換行與不換行,清除空白。
2.文本對(duì)齊、大?。ㄈ绾卧O(shè)置chrome小于12px的字體)、縮進(jìn)、轉(zhuǎn)換。
3.單位(em、rem、px等),顏色(rgb、rgba,hls)。
④ 變換、過(guò)渡和動(dòng)畫(huà)
1.transform的各種取值的作用與兼容性。
2.transition過(guò)渡的動(dòng)畫(huà)類(lèi)型,貝塞爾曲線(xiàn)的原理。
3.animation動(dòng)畫(huà)的各種設(shè)置,@keyframes規(guī)則。
4.瀏覽器的重繪與重排。
⑤ 選擇器
1.選擇器的分類(lèi),權(quán)值和優(yōu)先級(jí)。
2.有哪些屬性可以被繼承,哪些屬性沒(méi)法繼承。
3.偽類(lèi)和偽元素分別是什么,有什么作用。
上面這些都是基礎(chǔ)的東西,除了這些基礎(chǔ)的內(nèi)容之外需要了解Less、Sass、stylus等css預(yù)處理器,這將會(huì)大幅度提升你的css開(kāi)發(fā)效率,也需要了解一下Autoprefixer、PostCSS等css后處理器。

3.JavaScript部分

在這里就不說(shuō)js的基礎(chǔ)知識(shí)了,我把js按照語(yǔ)法的層次和使用的層次分為了兩大塊。
按照語(yǔ)法的層次來(lái)說(shuō):
首先是javascript的面向?qū)ο蠓矫娴膬?nèi)容:在javascript中實(shí)現(xiàn)封裝、繼承和多態(tài)。
① 封裝:在js中可以通過(guò)閉包、作用域和作用域鏈來(lái)實(shí)現(xiàn)封裝,ES6的const、let的作用。
② 繼承:基于原型鏈的繼承、基于構(gòu)造函數(shù)的繼承、組合式繼承、寄生式繼承等,外加ES6的class關(guān)鍵字,prototype和proto
③ 多態(tài):在javascript中多態(tài)是使用arguments來(lái)實(shí)現(xiàn)的,關(guān)于

arguments會(huì)引申出來(lái)很多內(nèi)容:
1.arguments的caller、callee等方法的作用。
2.方法的apply和call的作用和不同。
3.使用Array.prototype.slice.call來(lái)把一個(gè)數(shù)組對(duì)象轉(zhuǎn)化為數(shù)組。4.array的各種方法,如shift、splice、push、filter、map、reduce、forEach等等。

然后是Js的設(shè)計(jì)模式,比如說(shuō)那三種工廠模式啊,建造者模式啊等等。

最后是在不同情況下的this分別都代表什么。
按照使用的層次來(lái)說(shuō):

首先最主要的就是ajax,ajax的原理,ajax跨域的方法:jsonp、使用iframe的location.hash、postMessageAPI、websocket、服務(wù)器代理等等。

然后是tcp協(xié)議、udt協(xié)議以及http協(xié)議的協(xié)議頭、狀態(tài)碼等內(nèi)容。瀏覽器的緩存,客戶(hù)端存儲(chǔ)方面的內(nèi)容:localstorage、sessionstorage、indexDB、cookie等等。

最后是一些新的js的API,例如文件讀?。╢ileReader)、fetch、Promise、Web Sockets等等內(nèi)容,可以去caniuse上面看一下有哪些新的東西。
上面我所說(shuō)的這些只是一些比較籠統(tǒng)的概念,把前端html、css和javascript所需要掌握的部分內(nèi)容列舉了一下,在前端領(lǐng)域還有很多需要我們知道的知識(shí),這需要大家在學(xué)習(xí)工作的過(guò)程中去自己總結(jié)。

我有一個(gè)前端學(xué)習(xí)交流QQ群:328058344 如果你在學(xué)習(xí)前端的過(guò)程中遇到什么問(wèn)題,歡迎來(lái)我的QQ群提問(wèn),群里每天還會(huì)更新一些學(xué)習(xí)資源。禁止閑聊,非喜勿進(jìn)。

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

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

  • 問(wèn)答題47 /72 常見(jiàn)瀏覽器兼容性問(wèn)題與解決方案? 參考答案 (1)瀏覽器兼容問(wèn)題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 14,117評(píng)論 1 92
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,932評(píng)論 25 709
  • 一位年輕的商人被搭檔出賣(mài),人財(cái)兩空,痛不欲生,想跳湖自盡。 他在湖邊碰上了一位觀水靜坐的智者,便將自己的境遇逐一細(xì)...
    歲月靜好一予馨閱讀 479評(píng)論 0 0
  • 昨日做下的事: 處理售后客戶(hù)問(wèn)題,去幫忙裝機(jī)。 把隊(duì)員手上的卡都收上來(lái),返卡和對(duì)賬。 約健身房,練散打、練雙截棍。...
    文建偉CZYH閱讀 433評(píng)論 1 0
  • 前言:如果你是富二代你會(huì)過(guò)什么樣的生活呀。 01 我們身邊都有些富二代朋友,他們光鮮亮麗每天都是出沒(méi)在高檔場(chǎng)所,開(kāi)...
    從此天涯陌路閱讀 812評(píng)論 1 2

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