常見軟體工程師/網頁開發工具和學習資源整理
以下彙整常見 Web 網頁開發工具和資源整理:
以下彙整常見 Web 網頁開發工具和資源整理:
掌握基礎知識:在開始解決複雜問題之前,您需要確保對前端開發的基礎知識有扎實的理解,包括 HTML、CSS 和 JavaScript,以及它們如何協作來創建響應式和互動式的網頁。如果您認為自己在這些主題上仍需學習,請參考前端學習路線圖。
練習寫程式:通過小型專案或在 LeetCode 和 HackerRank 等平台上解決問題,來提升您的前端寫程式技能。專注於與前端開發相關的挑戰。
學習現代框架(framework)和函式庫(library):了解如 React、Angular 或 Vue.js 等流行的框架和函式庫。掌握這些工具對於現代前端開發職位至關重要。
熟悉開發工作流程中的基礎工具:確保您對基本工具和實踐(例如版本控制工具 Git、測試工具(單元測試和整合測試)以及建構工具如 Vite)感到熟悉。這些對於任何前端角色來說都至關重要。
理解 UI/UX 原則:掌握基本的設計和用戶體驗概念可以讓您在前端開發者中脫穎而出。學習無障礙設計、響應式設計,以及如何創建直觀的界面。
準備作品集:設計和開發作品集或是 side project 可以幫助你展現你在前端的技術能力。
研究不同公司和產業:透過了解您面試的公司業務和產品,表現出對公司的興趣。準備一些問題在面試時提出,展示您對該角色的重視。
提升溝通能力:雖然這並非特定於前端開發,但好的溝通能力可以幫助我們與設計師和 PM 在工作上更容易溝通協調。
id 是用於唯一標識單個 HTML 元素的識別符號。class 則是一個可重複使用的識別符號,可以應用於多個元素。
HTML 中 id 與 class 的區別
在 CSS 中:
#id 選擇具有該 id 的特定元素。.class 選擇具有該 class 的所有元素。CSS 盒模型描述了在 DOM 中為元素生成的矩形框。盒模型由以下幾層組成:
通過分別控制每一層,您可以定義使用者介面中每個元素的外觀。
在 CSS 中,inline、inline-block 和 block 元素的區別在於它們在網頁中的呈現方式:
Inline(行內元素):
<span>、<a>。Inline-block(行內區塊元素):
<img>。Block(區塊元素):
<div>、<p>。純 HTML 方面:
<header>、<nav>、<main>、<article>、<section> 和 <footer> 等標籤,提供有意義的結構。<h1> 到 <h6>,每個頁面僅使用一次 <h1> 作為主標題,其次是 <h2>、<h3> 至 <h6>等。<meta> 標籤,例如描述(description)、關鍵字(keywords)和視口(viewport),提供網站的元數據。alt 屬性,以提高無障礙性和搜尋引擎的理解能力。其他最佳實踐:
文件物件模型(Document Object Model,DOM)是用於網頁文件的 API,它將 HTML 網頁的結構表示為一棵樹,其中每個節點對應於文檔中的一部分(例如元素、屬性或文本)。
要為元素添加事件監聽器,首先需要通過文檔物件的某種方法(如 getElementById)獲取該元素,然後使用該物件的 addEventListener 方法。
此方法需要接收三個參數:事件名稱(如 click、keyup、mouseup 等)、事件處理函數,以及可選的 boolean(指示是否在捕獲階段觸發事件)。
在 JavaScript 中:
沒有值或沒有物件,需要由開發者明確賦值給變數。Cookies:
小型資料片段,儲存於瀏覽器中,主要用於在 HTTP 請求之間保留資訊,例如用戶身份驗證、會話管理和追蹤用戶行為。
sessionStorage:
用於臨時儲存,只能在同一個 session 中訪問(即瀏覽器視窗或標籤頁開著時)。當瀏覽器視窗關閉時,數據會丟失。
localStorage:
與 sessionStorage 類似,但資料在瀏覽器窗口或標籤頁關閉後依然存在,提供長期存儲功能。相較於 cookies,localStorage 的大小限制更大,更適合儲存大資料集。
瀏覽器渲染網頁的過程包括以下幾個步驟:
z-index 值、不透明度等渲染到屏幕上。媒體查詢是 CSS 中的一項功能,允許前端開發者根據設備或視口的各種特性應用不同的樣式。例如,根據設備的寬度、高度、方向或類型設定不同的樣式。
通過媒體查詢,可以實現響應式設計,使樣式適應不同的屏幕尺寸和設備能力。
EM 和 REM 在 CSS 中的比較
它們都是相對單位,但相對於的基準不同:
font-size: 2em 則等於 40px。<html> 元素)的字體大小。例如,若 <html> 的字體大小是 16px,則 1rem 等於 16px。建立 Flexbox 布局需要兩個主要步驟:
display: flex; 屬性應用到容器元素上。flex: 1。CSS 特殊性用於決定在樣式衝突時應該應用哪一組樣式。它遵循以下優先順序:
建立 Grid 布局的步驟:
display: grid。grid-template-rows 和 grid-template-columns 屬性定義網格的結構。grid-column 或 grid-row 屬性指定位置。閉包是指當一個函數定義在另一個函數內時,即使外部函數已執行完畢,內部函數仍然可以訪問外部函數的變數和參數。
閉包的用途:
事件委派是一種在父元素上定義事件處理器的技術,用來處理子元素觸發的事件。
事件委派原理:
當事件被觸發時,它會沿著 DOM 層次結構向上冒泡,直到到達父元素的事件處理器。
Promise 是 JavaScript 中用於表示非同步操作最終完成(或失敗)的對象。
.then() 和 .catch() 方法,分別用於處理成功和失敗的結果。根據資源類型,使用不同的優化技術:
Service Workers 是在網頁應用程序背景中執行的腳本,與網頁主線程分開運作,提供以下功能:
同源政策是瀏覽器中的一項安全功能,用於防止網站從其他網站訪問數據(如導入腳本或 API 請求)。
CSS 變數類似於前端程式語言中的變數,可以由開發者設置並在整個 CSS 樣式表中重複使用。
#222 而非 #000)。Critical CSS 是指將關鍵 CSS 規則從 CSS 文件中移除,並內嵌到網站的 <head> 元素中:
<head> 中。事件循環是 JavaScript 的核心概念,允許執行非同步代碼。
運作過程:
單線程執行代碼,函數按順序添加到調用棧,執行完畢後移除。非同步操作由瀏覽器的 Web API 處理,從調用棧中移除,單獨執行。JavaScript 提供了 4 種主要方法處理非同步操作:
.then() 和 .catch() 處理成功或失敗情況。在沒有使用函式庫或是框架(如 React 或 Vue.js)的情況下,管理狀態相對複雜,可考慮以下方法:
運作方式:
優勢:
伺服器端渲染(SSR): 是由伺服器生成完整的 HTML,並將其發送給客戶端,而非在客戶端動態生成內容(即客戶端渲染,CSR)。
適用場景:
需要監控的核心指標包括:
CSP(Content Security Policy): 一種安全標準,用於防止跨站腳本(XSS)和代碼注入攻擊。它通過定義和執行允許的資源來源白名單來運作。
優勢:
Tree Shaking: 是 JavaScript 模組打包工具(如 Webpack、Vite)用來移除未使用代碼的技術。
優勢:
以下彙整常見軟體工程師技術面試及學習資源整理:
以下整理了前端工程師相關的 10 個關鍵字,涵蓋技能、工具與工作方式:
HTML:前端結構的基礎語言,用於定義網頁的內容和結構。
CSS:用於設計網頁的樣式,包括佈局、配色和字體。
JavaScript:前端開發的核心語言,為網頁添加互動性。
React / Vue / Angular:主流的前端框架和函式庫,用於構建動態、模組化的應用程式。
Responsive Design(響應式設計):確保網站在不同裝置和螢幕大小下的最佳顯示效果。
REST API / GraphQL:前端與後端通訊的重要工具,用於前後端資料請求與傳輸。
Webpack / Vite / Parcel:模組打包工具,用於構建和優化前端資源。
Git / GitHub / GitLab:版本控制工具,用於協作開發與代碼管理。
Cross-Browser Compatibility(跨瀏覽器相容性):確保網站在不同瀏覽器上的一致性表現。
UI/UX Design(使用者介面/使用者體驗設計):理解使用者需求,優化網頁的易用性與美觀度。
以上關鍵字為前端工程師平常工作或是職涯的核心工作內容和技能樹,透過不斷累積相關經驗和專案開發能力,可以讓自己成為更優秀的軟體工程師。