一、什么是前端
前端是一個在互聯(lián)網(wǎng)領(lǐng)域中非常重要的角色,它負責(zé)將后端提供的數(shù)據(jù)和邏輯以可視化的形式展現(xiàn)給用戶,從而實現(xiàn)用戶與網(wǎng)站或應(yīng)用的交互。前端開發(fā)涉及到多種技術(shù)和工具,主要包括HTML、CSS、JavaScript等語言,以及各種框架、庫、編輯器、調(diào)試器等。
從字面上理解,前端就是指用戶能夠直接看到和操作的界面部分,也就是網(wǎng)站或應(yīng)用的“前臺”。與之相對應(yīng)的是后端,也就是指為前端提供數(shù)據(jù)和邏輯處理的服務(wù)器部分,也叫做“后臺”。一般來說,前端和后端通過網(wǎng)絡(luò)協(xié)議(如HTTP)進行通信,通過接口(API)進行數(shù)據(jù)交換。
舉個例子,當(dāng)我們在瀏覽器中訪問百度首頁時,我們看到了一個搜索框和一些推薦內(nèi)容。這些都是由前端開發(fā)者編寫代碼實現(xiàn)的。當(dāng)我們在搜索框中輸入關(guān)鍵詞并點擊搜索按鈕時,瀏覽器會向百度服務(wù)器發(fā)送一個請求,并攜帶我們輸入的關(guān)鍵詞。這個請求會被后端開發(fā)者編寫代碼處理,并根據(jù)關(guān)鍵詞查詢數(shù)據(jù)庫或其他資源,并返回一個包含搜索結(jié)果的響應(yīng)。這個響應(yīng)會被瀏覽器接收并解析,并由前端開發(fā)者編寫代碼顯示在頁面上。
可以看出,前端開發(fā)者需要掌握如何編寫能夠在瀏覽器中運行的代碼,并且能夠根據(jù)用戶需求設(shè)計合適美觀的界面,并且能夠與后端進行有效地通信。同時,由于不同的設(shè)備(如PC、手機、平板等)有不同的屏幕尺寸和分辨率,還需要考慮如何使界面能夠自適應(yīng)不同設(shè)備。
目前常見的用于編寫網(wǎng)頁界面代碼的語言有HTML、CSS和JavaScript。HTML(HyperText Markup Language)是一種標(biāo)記語言,用于定義網(wǎng)頁結(jié)構(gòu)和內(nèi)容;CSS(Cascading Style Sheets)是一種樣式表語言,用于定義網(wǎng)頁外觀和布局;JavaScript是一種腳本語言,用于實現(xiàn)網(wǎng)頁動態(tài)效果和交互功能。
除了這三種基礎(chǔ)語言外,在實際開發(fā)中還會使用各種框架(framework)、庫(library)、預(yù)處理器(preprocessor)等工具來提高開發(fā)效率和質(zhì)量。例如:
框架:Bootstrap、jQuery、React、Vue、Angular等庫:lodash、moment.js、axios等預(yù)處理器:Sass、Less、TypeScript等另外,在移動設(shè)備上訪問網(wǎng)頁時可能會遇到性能問題或兼容性問題。為了解決這些問題,在近幾年出現(xiàn)了一些新型的技術(shù)方案:
PWA(Progressive Web App):一種利用現(xiàn)代瀏覽器特性提供類似原生應(yīng)用體驗的網(wǎng)頁應(yīng)用。小程序:一種運行在特定平臺(如微信、支付寶等)內(nèi)部提供類似原生應(yīng)用功能和體驗的輕量級應(yīng)用。延伸閱讀1:什么是異步
異步(Asynchronous, async)是與同步(Synchronous, sync)相對的概念。在我們學(xué)習(xí)的傳統(tǒng)單線程編程中,程序的運行是同步的(同步不意味著所有步驟同時運行,而是指步驟在一個控制流序列中按順序執(zhí)行)。而異步的概念則是不保證同步的概念,也就是說,一個異步過程的執(zhí)行將不再與原有的序列有順序關(guān)系。
代碼是自上而下同步執(zhí)行的,既后面的代碼必須等待前面的代碼執(zhí)行完才會執(zhí)行,而異步執(zhí)行則是將主線程中的某段代碼交由子線程去執(zhí)行,當(dāng)交給子線程后,主線程就會繼續(xù)執(zhí)行后面代碼,而不用等待子線程執(zhí)行完成,異步是程序語言并行執(zhí)行的一種手段,通常將耗時的任務(wù)交由子線程同時處理,從而提升整體任務(wù)耗時。