本文目錄一覽:
- 1、css和js一樣么?
- 2、Web前端工程師初級階段需要掌握的內容
- 3、分別敘述前端三大技術HTML、CSS和JavaScript的概念和特點?
- 4、做前端開發工作,js中對哪些哪些技術點要求較高,實際開發中用js經常做些什麼東西? css要求有如何?
- 5、前端性能優化總結(一)-js、css優化
css和js一樣么?
不一樣。
css是層疊樣式表,是用來對網頁進行布局排版的語言。主要需要幾何知識,運用css屬性等進行網頁編程、網頁動畫效果製作。
js是JavaScript腳本語言,是用來做網頁編程和伺服器端編程的語言。前端js主要通過瀏覽器api對css及html進行操作。後端利用伺服器端api實現資料庫等操作。
Web前端工程師初級階段需要掌握的內容
今天小編給大家整理出來了Web前端工程師初級階段需要掌握的內容,很全面,希望大家好好閱讀,看看自己掌握的知識點和文章裡面寫的還相差多少。下面來和小編一起看一看吧!
一、什麼是初級Web前端工程師?
按照我的想法,我把前端工程師分為了入門、初級、中級、高級這四個級別,
入門級別指的是了解什麼是前端(前端到底是什麼其實很多人還是不清楚的),了解基本的html、css和javascript語法(這些語方面的東西網上隨便搜一下就有很多很多,基本的語法是整個技術體系最重要的東西了,領先的
Web技術教程),可以根據設計師的設計圖在不考慮兼容性的情況下把頁面做出來,了解過一些框架的使用(例如爛大街但是依然牛逼的jQuery、zepto、
bootstrap等等)。
在經歷過入門的階段,已經了解了前端要做什麼,並且把基本的語法學習過了可以獨立做一些簡單的頁面了,那麼就要繼續學習達到初級前端工程師的水平,對於初級的前端工程師需要了解的就特別多了,需要對整個前端有一個清晰的認識,並且熟練使用各種技術,我感覺在校的學生達到初級水平就可以通過bat的校招筆試
面試了。
初級前端工程師:首先要知道的就是如何處理各種瀏覽器的兼容處理(比如說在IE瀏覽器中的createElement有什麼不同等等內容),現在基本上每個公司在招聘的時候都會要求熟練html5,
css3,javascript,這個熟練的意思就是信手拈來。
在下面會說初級前端工程師應該具體的學習哪些知識,然後就是要了解各種css的預處理器和後處理器,還有會使用常見前端的MV*框架(angularjs,
backbone,reactjs等等)並知道這些框架的原理,另外就是要熟練使用nodejs,要會使用基於node的各種前端構建工具
(grunt,gulp等等),熟練使用github或gitlab,對模塊化、組件化、工程化、語義化有一個比較深入的了解,最後要知道如何開發移動端
的頁面,如何去優化一個頁面的性能。
二、初級Web前端工程師的技術體系
(一)HTML部分
首先是要掌握一些常用標籤的使用和他們的各個屬性,這些常用的標籤我總結了一下有以下這些:
html:頁面的根元素。head:頁面的頭部標籤,是所有頭部元素的容器。body:頁面的主體標籤,頁面展現的內容就放置在這裡面。title:頁面的標題。meta:位於文檔的頭部,提供頁面的元信息,包括關鍵字、描述等等。link:定義文檔與外部資源的關係,最常用的用途就是引入樣式表。script:腳本標籤,可以把js腳本代碼放置在這個標籤內,也可以使用這個標籤的src屬性引入一個外部標籤。style:樣式標籤,可以把css代碼寫在這個標籤中。a:超鏈接,href屬性代表要鏈接到的地方,target屬性代表打開方式。img:圖像標籤,src屬性表示圖片的位置。form:表單元素,它內部的input、select、textarea等標籤都是比較重要的。div:定義文檔中的分區或節,可以使用div來進行頁面的布局等操作。另外還有ul、li、p、button、iframe、p、table等標籤也很常用,nav、section、article、header、aside、footer等語義化標籤也需要了解一下。
除了要了解上面這一些標籤之外,還需要對一些新的HTML5的API有一定的了解:
·audio、video標籤。
·Canvas:定義圖形,比如圖表和其他圖像。
·input標籤的accept屬性,email、phone、url等類型。
·getElementByClassName根據class名來獲取一個元素結點。
·Multiplefileselection多文件選擇屬性。
·html的import、template
·process標籤,WebGL等內容。
還有一些要知道的知識點:
1.
doctype的作用。2.unicode、utf8等編碼的原理和區別。3.如何進行頁面性能優化。4.png、jpg、Webp、gif等圖片格式的不同的優勢。5.HTML行內元素與塊級元素的區別。6.移動Web端開發常用head標籤。7.Web語義化。8.瀏覽器中的緩存原理
(二)CSS部分
關於css這一塊,我的看法就是網上下載一個chm格式的css的參考手冊,然後根據手冊裡面寫的一個個的都敲一下。
css大體分為下面這幾塊知識點:
①定位布局
1.position屬性的7個值(static|relative|absolute|fixed|center|page|
sticky)分別有什麼作用和不同?
2.實現品字形布局或者是三欄布局(左右寬度固定,中間適應屏幕)。
3.浮動與清除浮動的方法,flex布局,grid布局。
②盒子模型
1.margin、padding、border這三個屬性。
2.伸縮盒相關內容。
3.Multi-columnLayoutModule多列布局模型。
③文本字體
1.強制換行與不換行,清除空白。
2.文本對齊、大小(如何設置chrome小於12px的字體)、縮進、轉換。
3.單位(em、rem、px等),顏色(rgb、rgba,hls)。
④變換、過渡和動畫
1.transform的各種取值的作用與兼容性。
2.transition過渡的動畫類型,貝塞爾曲線的原理。
3.animation動畫的各種設置,@keyframes規則。
4.瀏覽器的重繪與重排。
⑤選擇器
1.選擇器的分類,權值和優先順序。
2.有哪些屬性可以被繼承,哪些屬性沒法繼承。
3.偽類和偽元素分別是什麼,有什麼作用。
上面這些都是基礎的東西,除了這些基礎的內容之外需要了解Less、Sass、stylus等css預處理器,這將會大幅度提升你的css開發效率,也需要了解一下Autoprefixer、PostCSS等css後處理器。
(三)JavaScript部分
在這裡就不說js的基礎知識了,我把js按照語法的層次和使用的層次分為了兩大塊。
按照語法的層次來說:
首先是javascript的面向對象方面的內容:在javascript中實現封裝、繼承和多態。
①封裝:在js中可以通過閉包、作用域和作用域鏈來實現封裝,ES6的const、let的作用。②
繼承:基於原型鏈的繼承、基於構造函數的繼承、組合式繼承、寄生式繼承等,外加ES6的class關鍵字,prototype和__proto__。③
多態:在javascript中多態是使用arguments來實現的,關於arguments會引申出來很多內容:1.arguments的caller、callee等方法的作用。2.方法的apply和call的作用和不同。3.使用Array.prototype.slice.call來把一個數組對象轉化為數組。4.array的各種方法,如shift、splice、push、filter、map、reduce、forEach等等。
然後是Js的設計模式,比如說那三種工廠模式啊,建造者模式啊等等。
最後是在不同情況下的this分別都代表什麼。
按照使用的層次來說:
首先最主要的就是ajax,ajax的原理,ajax跨域的方法:jsonp、使用iframe的location.hash、postMessageAPI、Websocket、伺服器代理等等。
然後是tcp協議、udt協議以及http協議的協議頭、狀態碼等內容。瀏覽器的緩存,客戶端存儲方面的內容:localstorage、sessionstorage、indexDB、cookie等等。
最後是一些新的js的API,例如文件讀取(fileReader)、fetch、Promise、Web
Sockets等等內容,可以去caniuse上面看一下有哪些新的東西。
上面我所說的這些只是一些比較籠統的概念,把前端html、css和javascript所需要掌握的部分內容列舉了一下,在前端領域還有很多需要我們知道的知識,這需要大家在學習工作的過程中去自己總結。
以上就是小編今天為大家分享的關於Web前端工程師初級階段需要掌握的內容的文章,希望本篇文章能夠對正在從事Web前端工作的小夥伴們有所幫助,想要了解更多Web前端相關知識記得關注北大青鳥Web培訓官網。最後祝願小夥伴們工作順利!
分別敘述前端三大技術HTML、CSS和JavaScript的概念和特點?
一個基本的網站包含很多個網頁,一個網頁由html, css和javascript組成。
html是主體,裝載各種dom元素;(主體建築)
css用來裝飾dom元素;(靜態裝修)
javascript控制dom元素。(動態裝修)
用一扇門比喻三者間的關係是:html是門的門板,css是門上的油漆或花紋,javascript是門的開關;
做前端開發工作,js中對哪些哪些技術點要求較高,實際開發中用js經常做些什麼東西? css要求有如何?
實際開發中為了效率,公司都有採用一些js庫,如jquery、prototype等,這方面可以學一學,前端個人總結js對文檔操作、後台數據交互、組件開發用得比較多,配合做一些計算和特性等,js能做的東西也很多,要必須不斷積累;css則必須輕車熟路,能配合美工做出優美的界面、對全局和細節的精確掌控,還有救是瀏覽器的兼容性則是css的重點。
前端性能優化總結(一)-js、css優化
移動互聯網時代,用戶對於網頁的打開速度要求越來越高。首屏作為直面用戶的第一屏,其重要性不言而喻。優化用戶體驗更是我們前端開發非常需要 focus 的東西之一。
從用戶的角度而言,當打開一個網頁,往往關心的是從輸入完網頁地址後到最後展現完整頁面這個過程需要的時間,這個時間越短,用戶體驗越好。所以作為網頁的開發者,就從輸入url到頁面渲染呈現這個過程中去提升網頁的性能。
所以輸入URL後發生了什麼呢?在瀏覽器中輸入url會經歷域名解析、建立TCP連接、發送http請求、資源解析等步驟。
http緩存優化是網頁性能優化的重要一環,這一部分我會在後續筆記中做一個詳細總結,所以本文暫不多做詳細整理。本文主要從網頁渲染過程、網頁交互以及Vue應用優化三個角度對性能優化做一個小結。
首先談談拿到服務端資源後瀏覽器渲染的流程:
關鍵渲染路徑是瀏覽器將 HTML、CSS、JavaScript 轉換為在屏幕上呈現的像素內容所經歷的一系列步驟。也就是我們剛剛提到的的的瀏覽器渲染流程。
為儘快完成首次渲染,我們需要最大限度減小以下三種可變因素:
首先,DOM 和 CSSOM 通常是並行構建的,所以 CSS 載入不會阻塞 DOM 的解析。
然而,由於 Render Tree 是依賴於 DOM Tree 和 CSSOM Tree 的,
所以他必須等待到 CSSOM Tree 構建完成,也就是 CSS 資源載入完成(或者 CSS 資源載入失敗)後,才能開始渲染。因此,CSS 載入會阻塞 Dom 的渲染。
由此可見,對於 CSSOM 縮小、壓縮以及緩存同樣重要,我們可以從這方面考慮去優化。
當瀏覽器遇到 script 標記時,會阻止解析器繼續操作,直到 CSSOM 構建完畢,JavaScript 才會運行並繼續完成 DOM 構建過程。
當頁面中元素樣式的改變並不影響它在文檔流中的位置時(例如:color、background-color、visibility 等),瀏覽器會將新樣式賦予給元素並重新繪製它,這個過程稱為重繪。
迴流(Reflow)
當 Render Tree 中部分或全部元素的尺寸、結構、或某些屬性發生改變時,瀏覽器重新渲染部分或全部文檔的過程稱為迴流。
有時即使僅僅迴流一個單一的元素,它的父元素以及任何跟隨它的元素也會產生迴流。現代瀏覽器會對頻繁的迴流或重繪操作進行優化:瀏覽器會維護一個隊列,把所有引起迴流和重繪的操作放入隊列中,如果隊列中的任務數量或者時間間隔達到一個閾值的,瀏覽器就會將隊列清空,進行一次批處理,這樣可以把多次迴流和重繪變成一次。
當你訪問以下屬性或方法時,瀏覽器會立刻清空隊列:
因為隊列中可能會有影響到這些屬性或方法返回值的操作,即使你希望獲取的信息與隊列中操作引發的改變無關,瀏覽器也會強行清空隊列,確保你拿到的值是最精確的。
避免頻繁操作樣式,最好一次性重寫 style 屬性,或者將樣式列表定義為 class 並一次性更改 class 屬性。
避免頻繁操作 DOM,創建一個 documentFragment,在它上面應用所有 DOM 操作,最後再把它添加到文檔中。
也可以先為元素設置 display: none,操作結束後再把它顯示出來。因為在 display 屬性為 none 的元素上進行的 DOM 操作不會引發迴流和重繪。
避免頻繁讀取會引發迴流/重繪的屬性,如果確實需要多次使用,就用一個變數緩存起來。
對具有複雜動畫的元素使用絕對定位,使它脫離文檔流,否則會引起父元素及後續元素頻繁迴流。
圖片懶載入在一些圖片密集型的網站中運用比較多,通過圖片懶載入可以讓一些不可視的圖片不去載入,避免一次性載入過多的圖片導致請求阻塞(瀏覽器一般對同一域名下的並發請求的連接數有限制),這樣就可以提高網站的載入速度,提高用戶體驗。
將頁面中的img標籤src指向一張小圖片或者src為空,然後定義data-src(這個屬性可以自定義命名,我才用data-src)屬性指向真實的圖片。src指向一張默認的圖片,否則當src為空時也會向伺服器發送一次請求。可以指向loading的地址。注意,圖片要指定寬高。
當載入頁面時,先把可視區域內的img標籤的data-src屬性值負給src,然後監聽滾動事件,把用戶即將看到的圖片載入。這樣便實現了懶載入。
事件委託其實就是利用JS事件冒泡機制把原本需要綁定在子元素的響應事件(click、keydown……)委託給父元素,讓父元素擔當事件監聽的職務。事件代理的原理是DOM元素的事件冒泡。
優點:
例如有一個列表需要綁定點擊事件,每一個列表項的點擊都需要返回不同的結果。
傳統寫法:
傳統方法會利用for循環遍歷列表為每一個列表元素綁定點擊事件,當列表中元素數量非常龐大時,需要綁定大量的點擊事件,這種方式就會產生性能問題。這種情況下利用事件委託就能很好的解決這個問題。
改用事件委託:
輸入搜索時,可以用防抖debounce等優化方式,減少http請求;
這裡以滾動條事件舉例:防抖函數 onscroll 結束時觸發一次,延遲執行
節流函數:只允許一個函數在N秒內執行一次。滾動條調用介面時,可以用節流throttle等優化方式,減少http請求;
下面還是一個簡單的滾動條事件節流函數:節流函數 onscroll 時,每隔一段時間觸發一次,像水滴一樣
參考鏈接:
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/241419.html