Bạn muốn ứng tuyển vào vị trí Intern Front End? Vậy hãy bỏ túi ngay những câu hỏi phỏng vấn Front End phổ biến nhất dành cho thực tập sinh hiện nay với chia sẻ trong bài viết dưới đây nhé!
Mục lục
- 1. Các Câu Hỏi Khi Phỏng Vấn Front End Phổ Biến
- 1.1 Sự Khác Biệt Giữa Display:None Và Visibility:Hidden Trong CSS Là Gì?
- 1.2 Doctype Trong HTML Có Vai Trò Như Thế Nào?
- 1.3 Mô Hình Hộp (Box Model) Trong CSS Có Những Thành Phần Gì?
- 1.4 Cách Thức Hoạt Động Của Event Delegation Trong JavaScript Là Gì?
- 1.5 Nêu Sự Khác Biệt Giữa Var, Let Và Const Trong JavaScript?
- 1.6 Callback Trong JavaScript Là Gì?
- 1.7 Promises Có Vai Trò Gì Trong JavaScript?
- 1.8 Virtual DOM Trong ReactJS Là Gì?
- 1.9 Vai Trò Của Redux Trong ReactJS Là Gì?
- 1.10 Hãy Nêu Khái Niệm API Và Cách Sử Dụng Fetch API Trong JavaScript?
- 2. Các Câu Hỏi Phỏng Vấn Front End Reactjs
- 2.1 React Hooks Bao Gồm Những Lệnh Nào?
- 2.2 Hãy Nêu Vai Trò Của React Router Trong Ứng Dụng ReactJS?
- 2.3 Higher-Order Components (HOC) Trong ReactJS Là Gì?
- 2.4 Sự Khác Biệt Giữa Props Và State Trong ReactJS Là Gì?
- 2.5 Cách Thức Hoạt Động Của Lifecycle Methods Trong ReactJS Như Thế Nào?
- 2.6 Vai Trò Của Context Trong ReactJS Là Gì?
- 2.7 Khái Niệm Performance Optimization Trong ReactJS Là Gì?
- 2.8 Cách Thức Hoạt Động Của Webpack Trong ReactJS Như Thế Nào?
- 2.9 CSS-In-JS Có Vai Trò Gì Trong ReactJS?
- 3. Câu Hỏi Phỏng Vấn Front End Fresher
- 3.1 Ngôn Ngữ HTML Có Vai Trò Gì Trong Lập Trình Web?
- 3.2 Cấu Trúc Cơ Bản Của Một Trang HTML Gồm Những Thành Phần Nào?
- 3.3 Hãy Kể Tên 3 Thẻ HTML Phổ Biến Và Chức Năng Chính Của Từng Loại?
- 3.4 Những Kiểu Dữ Liệu Cơ Bản Trong JavaScript Là Gì?
- 3.5 Trong JavaScript, Có Những Lệnh Điều Kiện Nào?
- 3.6 2 Nguyên Tắc Cơ Bản Trong Bảo Mật Web Là Gì?
- 3.7 Git Và Github Là Gì?
- 3.9 Sự Khác Biệt Giữa Các Thẻ HTML <Table>, <Tr> Và <Td> Là Gì?
- 4. Những Câu Hỏi Phỏng Vấn CSS Front End
- 4.1 Có Những Phương Pháp Responsive Web Design Phổ Biến Nào?
- 4.2 Sử Dụng Css Animations Và Transitions Như Thế Nào?
- 4.3 Preprocessors CSS Có Những Tính Năng Gì?
- 4.4 Có Những Loại CSS Selectors Nào?
- 4.5 Những Ưu Điểm Khi Sử Dụng CSS Grid Layout Là Gì?
- 4.6 Có Những Loại CSS Positioning Nào?
- 4.7 Sự Khác Nhau Giữa Display:Block Và Display:Inline Trong CSS Là Gì?
- 4.9 Giải Thích Về Cách Thức Hoạt Động Của CSS Variables Và Mixins Có Chức Năng Gì?
- 5. Các Câu Hỏi Phỏng Vấn Front End JavaScript
- 5.1 Các Kiểu Dữ Liệu Cơ Bản Trong JavaScript Có Ý Nghĩa Gì?
- 5.2 Hãy Giải Thích Về Các Hàm (Functions) Trong JavaScript?
- 5.3 Nêu Cách Sử Dụng Phương Thức (Methods) Trong JavaScript?
- 5.4 Cấu Trúc Của Đối Tượng (Objects) Trong JavaScript Là Gì?
- 5.5 Sự Khác Biệt Giữa == Và === Trong JavaScript Là Gì?
- 5.6 Mảng (Arrays) Trong JavaScript Là Gì?
- 5.7 Lập Trình Hướng Đối Tượng (OOP) trong JavaScript Là Gì?
- 5.8 Sử Dụng Thư Viện JavaScript Như Thế Nào?
- 5.9 Có Mấy Cách Chính Để Xử Lý Sự Kiện Trong JavaScript?
- 6. Câu Hỏi Phỏng Vấn HTML
- 6.1 HTML Là Gì Và Vai Trò Của HTML?
- 6.2 Nêu Sự Khác Nhau Giữa Id Và Class Trong HTML?
- 6.3 Hãy Giải Thích Về Cấu Trúc Và Cú Pháp HTML?
- 6.4 Phân Biệt Các Loại Thẻ HTML
- 6.5 Hãy Nêu Sự Khác Biệt Giữa Doctype HTML 4.01 Và HTML5?
- 6.6 Nêu Các Cách Để Kiểm Tra Tính Hợp Lệ Của Code HTML?
- 6.7 Microdata Là Gì Và Tầm Quan Trọng Của Nó?
- 6.8 Sử Dụng Các Thẻ Heading (H1, H2, H3, V.V.) Để Làm Gì?
- 6.9 Để Tối Ưu Hóa Hiệu Suất Hình Ảnh Trong HTML Nên Làm Gì?
1. Các Câu Hỏi Khi Phỏng Vấn Front End Phổ Biến
1.1 Sự Khác Biệt Giữa Display:None Và Visibility:Hidden Trong CSS Là Gì?
Gợi ý trả lời: Sự khác biệt giữa display:none và visibility:hidden trong css là:
- Display:none là loại bỏ hoàn toàn phần tử khỏi bố cục trang, không chiếm không gian và không tương tác với các phần tử khác. Nó giống như việc ẩn phần tử hoàn toàn khỏi người dùng.
- Visibility:hidden là ẩn phần tử nhưng vẫn giữ nguyên vị trí và kích thước trong bố cục trang. Phần tử vẫn chiếm không gian và có thể tương tác với các phần tử khác bằng JavaScript. Ví dụ, bạn có thể sử dụng visibility: hidden để ẩn một phần tử tạm thời mà không làm thay đổi bố cục trang.
Có thể bạn quan tâm: Lập trình Frontend là gì? Mô tả công việc của nhân viên Frontend
1.2 Doctype Trong HTML Có Vai Trò Như Thế Nào?
Gợi ý trả lời: Doctype khai báo phiên bản HTML đang sử dụng cho trình duyệt. Điều này giúp trình duyệt hiển thị trang web chính xác và hiểu được cấu trúc của tài liệu HTML.
1.3 Mô Hình Hộp (Box Model) Trong CSS Có Những Thành Phần Gì?
Gợi ý trả lời: Mô hình hộp bao gồm các thành phần: content, padding, border, margin. Trong đó:
- Content: Nội dung văn bản hoặc HTML bên trong phần tử.
- Padding: Khoảng trống giữa nội dung và viền.
- Border: Viền bao quanh phần tử.
- Margin: Khoảng trống giữa phần tử và các phần tử khác.
1.4 Cách Thức Hoạt Động Của Event Delegation Trong JavaScript Là Gì?
Gợi ý trả lời: Event delegation được dùng gán sự kiện cho một phần tử cha thay vì từng phần tử con. Điều này giúp tối ưu hóa hiệu suất JavaScript, đặc biệt khi có nhiều phần tử con cần xử lý sự kiện tương tự. Ví dụ, có thể sử dụng event delegation để gán sự kiện click cho một danh sách, thay vì gán sự kiện click cho từng item trong danh sách.
1.5 Nêu Sự Khác Biệt Giữa Var, Let Và Const Trong JavaScript?
Gợi ý trả lời: Sự khác biệt giữa var, let và const trong JavaScript là:
- Var: có phạm vi toàn cục (global scope) và phạm vi khối chức năng (function scope). Biến được khai báo bằng var có thể truy cập được từ bất kỳ đâu trong chương trình.
- Let: có phạm vi khối (block scope). Biến được khai báo bằng let chỉ truy cập được trong khối lệnh nơi nó được khai báo.
- Const: là biến không thay đổi giá trị (constant). Biến được khai báo bằng const phải được khởi tạo giá trị ban đầu và không thể thay đổi giá trị sau khi khai báo.
1.6 Callback Trong JavaScript Là Gì?
Gợi ý trả lời: Callback là hàm được truyền vào hàm khác như một đối số. Hàm này được gọi sau khi hàm đầu tiên hoàn thành. Callback giúp thực hiện các tác vụ tuần tự hoặc xử lý kết quả trả về từ hàm đầu tiên.
1.7 Promises Có Vai Trò Gì Trong JavaScript?
Gợi ý trả lời: Promises giúp xử lý các tác vụ bất đồng bộ (asynchronous) trong JavaScript một cách hiệu quả. Bên cạnh đó Promises cũng cung cấp các phương thức để theo dõi trạng thái (pending, fulfilled, rejected) và thực thi các hành động tương ứng. Ví dụ, có thể sử dụng promises để tải dữ liệu từ server hoặc thực hiện các thao tác I/O bất đồng bộ.
1.8 Virtual DOM Trong ReactJS Là Gì?
Gợi ý trả lời: Virtual DOM là một mô hình biểu diễn cây DOM (Document Object Model) ảo. ReactJS sử dụng virtual DOM để tối ưu hóa hiệu suất khi cập nhật giao diện người dùng. Khi có thay đổi trong dữ liệu, ReactJS sẽ so sánh virtual DOM cũ với virtual DOM mới và chỉ cập nhật các phần tử DOM thực sự thay đổi trên giao diện. Điều này giúp giảm thiểu số lần cập nhật DOM, tăng hiệu suất rendering và mang lại trải nghiệm người dùng mượt mà hơn.
1.9 Vai Trò Của Redux Trong ReactJS Là Gì?
Gợi ý trả lời: Redux là một thư viện quản lý trạng thái (state management) cho ứng dụng ReactJS. Redux giúp lưu trữ trạng thái tập trung, đồng bộ hóa trạng thái giữa các component và theo dõi thay đổi trạng thái một cách hiệu quả. Sử dụng Redux giúp xây dựng các ứng dụng ReactJS phức tạp và dễ dàng quản lý hơn.
1.10 Hãy Nêu Khái Niệm API Và Cách Sử Dụng Fetch API Trong JavaScript?
Gợi ý trả lời: API (Application Programming Interface) là giao diện lập trình ứng dụng, cho phép các phần mềm khác nhau tương tác và trao đổi dữ liệu với nhau. fetch API là một phương thức JavaScript được sử dụng để truy cập và lấy dữ liệu từ các nguồn bên ngoài như server, REST API.
2. Các Câu Hỏi Phỏng Vấn Front End Reactjs
2.1 React Hooks Bao Gồm Những Lệnh Nào?
Gợi ý trả lời: React Hooks là các hàm đặc biệt cho phép bạn “hook” (kết nối) trạng thái và các tính năng vòng đời của React vào các component function component mà không cần sử dụng class component.
Một số React Hooks phổ biến bao gồm:
- UseState: Quản lý trạng thái cục bộ của component.
- UseEffect: Thực hiện các tác vụ phụ thuộc vào vòng đời của component (ví dụ: fetch dữ liệu, đăng ký/hủy đăng ký sự kiện).
- UseContext: Chia sẻ dữ liệu giữa các component không có mối quan hệ cha – con trực tiếp.
- UseReducer: Quản lý trạng thái phức tạp hơn với logic reducer.
- UseRef: Tham chiếu đến các phần tử DOM hoặc lưu trữ giá trị không thay đổi.
2.2 Hãy Nêu Vai Trò Của React Router Trong Ứng Dụng ReactJS?
Gợi ý trả lời: React Router là thư viện quản lý routing (định tuyến) cho ứng dụng ReactJS. React Router giúp tạo ra các URL, điều hướng giữa các trang và quản lý trạng thái routing trong ứng dụng. Một số tính năng chính của React Router bao gồm:
- Tạo URL động và tĩnh.
- Xử lý nested routing (định tuyến lồng nhau).
- Cung cấp các component routing như Link, Switch, Route.
- Hỗ trợ lazy loading .
2.3 Higher-Order Components (HOC) Trong ReactJS Là Gì?
Gợi ý trả lời: Higher-order components (HOC) là một kỹ thuật tái sử dụng code trong ReactJS bằng cách bọc một component trong một component khác để bổ sung chức năng hoặc thay đổi hành vi. HOC giúp bạn tạo ra các component linh hoạt và dễ dàng chia sẻ. Một số ví dụ phổ biến về HOC bao gồm:
- WithRouter: Truyền props routing vào component.
- WithAuthentication: Kiểm tra xác thực người dùng trước khi hiển thị component.
- WithData: Fetch dữ liệu và truyền vào component.
Có thể bạn quan tâm: Web Developers – Xu hướng việc làm thời công nghệ 4.0
2.4 Sự Khác Biệt Giữa Props Và State Trong ReactJS Là Gì?
Gợi ý trả lời: Sự khác biệt giữa props và state trong ReactJS là:
- Props là dữ liệu được truyền từ component cha sang component con, chỉ đọc (read-only) và không thể thay đổi trực tiếp.
- State là trạng thái nội bộ của component, có thể thay đổi bằng cách sử dụng setState và ảnh hưởng đến việc render giao diện.
2.5 Cách Thức Hoạt Động Của Lifecycle Methods Trong ReactJS Như Thế Nào?
Gợi ý trả lời: Lifecycle methods là các phương thức đặc biệt được gọi trong các giai đoạn khác nhau của vòng đời component ReactJS. Một số lifecycle methods phổ biến bao gồm:
- ComponentDidMount: Được gọi sau khi component được render lần đầu tiên.
- ComponentWillUnmount: Được gọi trước khi component bị hủy.
- ShouldComponentUpdate: Xác định xem component có cần được render lại hay không khi props hoặc state thay đổi.
- GetDerivedStateFromProps: Cập nhật state của component dựa trên props mới.
- GetSnapshotBeforeUpdate: Lưu trữ snapshot của DOM trước khi component được update.
2.6 Vai Trò Của Context Trong ReactJS Là Gì?
Gợi ý trả lời: Context là một cách để chia sẻ dữ liệu giữa các component ReactJS không có mối quan hệ cha – con trực tiếp. Context giúp bạn tránh phải truyền props qua nhiều tầng component. Ví dụ, có thể sử dụng context để chia sẻ theme, ngôn ngữ hoặc thông tin đăng nhập người dùng trong toàn bộ ứng dụng.
2.7 Khái Niệm Performance Optimization Trong ReactJS Là Gì?
Gợi ý trả lời: Performance optimization là việc tối ưu hóa hiệu suất cho ứng dụng ReactJS để tăng tốc độ tải trang, giảm thiểu thời gian render và mang lại trải nghiệm người dùng mượt mà. Một số kỹ thuật performance optimization phổ biến bao gồm:
- Sử dụng React Hooks hiệu quả.
- Tối ưu hóa component.
- Sử dụng memoization.
- Sử dụng lazy loading.
- Tối ưu hóa bundle size.
2.8 Cách Thức Hoạt Động Của Webpack Trong ReactJS Như Thế Nào?
Gợi ý trả lời: Webpack là một bundler (công cụ đóng gói) JavaScript giúp bạn kết hợp nhiều module, file JavaScript và các tài nguyên khác thành một file duy nhất để tối ưu hóa hiệu suất và triển khai ứng dụng ReactJS. Webpack cung cấp nhiều tính năng như:
- Pre-processing: Xử lý các file JavaScript trước khi bundling, ví dụ như compiling TypeScript sang JavaScript, minifying code.
- Code splitting: Tách code thành các bundle riêng biệt để tối ưu hóa việc tải trang.
- Lazy loading: Tải các component chỉ khi cần thiết để giảm thiểu bundle size.
- Tree shaking: Loại bỏ các phần code không sử dụng khỏi bundle.
- Source maps: Tạo source maps để dễ dàng debug code.
2.9 CSS-In-JS Có Vai Trò Gì Trong ReactJS?
Gợi ý trả lời: CSS-in-JS là phương pháp quản lý CSS trực tiếp trong các component ReactJS bằng cách sử dụng thư viện như styled-components, emotion, css-modules, v.v. CSS-in-JS giúp tạo ra CSS linh hoạt, dễ quản lý và đảm bảo tính nhất quán trong ứng dụng.
Có thể bạn quan tâm: câu hỏi phỏng vấn lập trình viên
3. Câu Hỏi Phỏng Vấn Front End Fresher
3.1 Ngôn Ngữ HTML Có Vai Trò Gì Trong Lập Trình Web?
Gợi ý trả lời: HTML (HyperText Markup Language) là ngôn ngữ đánh dấu được sử dụng để tạo cấu trúc và nội dung cho trang web. Nó đóng vai trò nền tảng cho mọi trang web, xác định các phần tử khác nhau của trang như tiêu đề, đoạn văn, hình ảnh, liên kết, v.v. HTML cung cấp cho trình duyệt web thông tin cần thiết để hiển thị nội dung trang web một cách chính xác và dễ hiểu.
3.2 Cấu Trúc Cơ Bản Của Một Trang HTML Gồm Những Thành Phần Nào?
Gợi ý trả lời: Cấu trúc cơ bản của một trang HTML bao gồm:
- <!DOCTYPE html>: Khai báo loại tài liệu là HTML5.
- <html>: Thẻ gốc bao gồm toàn bộ nội dung của trang web.
- <head>: Chứa thông tin meta về trang web như tiêu đề, charset, liên kết đến CSS, v.v.
- <body>: Chứa nội dung chính của trang web mà người dùng nhìn thấy.
3.3 Hãy Kể Tên 3 Thẻ HTML Phổ Biến Và Chức Năng Chính Của Từng Loại?
Gợi ý trả lời: 3 thẻ HTML phổ biến là thẻ <1> đến <6>, thẻ <p>, thẻ <img>. Trong đó:
- <h1> đến <h6>: Tạo tiêu đề cho các phần khác nhau trong trang web, với <h1> là tiêu đề lớn nhất và <h6> là tiêu đề nhỏ nhất.
- <p>: Tạo đoạn văn bản.
- <img>: Hiển thị hình ảnh trên trang web.
3.4 Những Kiểu Dữ Liệu Cơ Bản Trong JavaScript Là Gì?
Gợi ý trả lời: Có 3 kiểu dữ liệu cơ bản trong JavaScript là:
- Number: Lưu trữ các giá trị số.
- String: Lưu trữ các chuỗi ký tự.
- Boolean: Lưu trữ các giá trị true hoặc false.
3.5 Trong JavaScript, Có Những Lệnh Điều Kiện Nào?
Gợi ý trả lời: Trong JavaScript, có 3 loại lệnh điều kiện chính được sử dụng để kiểm tra điều kiện và thực thi mã dựa trên kết quả là: <if>, <else if > và <switch>.
3.6 2 Nguyên Tắc Cơ Bản Trong Bảo Mật Web Là Gì?
Gợi ý trả lời: 2 nguyên tắc cơ bản trong bảo mật web là:
- Sử dụng HTTPS: HTTPS mã hóa dữ liệu truyền tải giữa máy chủ và trình duyệt, giúp bảo vệ thông tin khỏi bị đánh cắp hoặc thay đổi.
- Thực thi xác thực và ủy quyền người dùng: Yêu cầu người dùng đăng nhập và cung cấp thông tin tài khoản để truy cập vào các khu vực nhạy cảm của trang web.
3.7 Git Và Github Là Gì?
Gợi ý trả lời:
- Git: Hệ thống quản lý phiên bản mã nguồn, giúp theo dõi các thay đổi trong mã code, cộng tác với người khác và quay lại các phiên bản trước.
- GitHub: Nền tảng lưu trữ kho mã Git trực tuyến, cho phép chia sẻ mã code, cộng tác với người khác và theo dõi dự án.
3.8 Sử Dụng Thẻ HTML <Script> Để Nhúng Mã JavaScript Vào Trang HTML Như Thế Nào?
Gợi ý trả lời: Thẻ HTML <script> được sử dụng để nhúng mã JavaScript vào trang HTML. Mã JavaScript được đặt trong nội dung của thẻ <script>. Khi trình duyệt web gặp thẻ <script>, nó sẽ thực thi mã JavaScript bên trong thẻ
3.9 Sự Khác Biệt Giữa Các Thẻ HTML <Table>, <Tr> Và <Td> Là Gì?
Gợi ý trả lời: Sự khác biệt giữa các thẻ <table>, <tr> Và <td> là:
- Thẻ <table>: Dùng để tạo bảng trong trang web và có thể chứa các thẻ <tr> và <td>.
- Thẻ <tr>: Dùng để tạo một hàng trong bảng và có thể chứa các thẻ <td>.
- Thẻ <td>: Dùng để tạo một ô trong bảng và có thể chứa văn bản, hình ảnh, hoặc các phần tử HTML khác.
4. Những Câu Hỏi Phỏng Vấn CSS Front End
4.1 Có Những Phương Pháp Responsive Web Design Phổ Biến Nào?
Gợi ý trả lời: Responsive web design là kỹ thuật thiết kế trang web để hiển thị tốt trên mọi thiết bị, từ máy tính bàn đến điện thoại thông minh. Một số phương pháp responsive web design phổ biến bao gồm:
- Fluid layouts: Sử dụng tỷ lệ phần trăm thay cho giá trị pixel để định dạng kích thước và vị trí của các phần tử.
- Media queries: Thay đổi bố cục trang web dựa trên kích thước màn hình của thiết bị.
- Flexbox: Hệ thống bố cục linh hoạt cho phép bạn sắp xếp các phần tử theo nhiều cách khác nhau.
- Grid layout: Hệ thống bố cục dạng lưới giúp bạn tạo ra các bố cục có cấu trúc và tổ chức.
4.2 Sử Dụng Css Animations Và Transitions Như Thế Nào?
Gợi ý trả lời: CSS animations và transitions cho phép bạn tạo ra các hiệu ứng động cho các phần tử HTML.
- Animations: Thay đổi thuộc tính CSS của một phần tử theo thời gian, tạo ra chuyển động mượt mà.
- Transitions: Thay đổi thuộc tính CSS của một phần tử một cách mượt mà khi người dùng tương tác với nó, như khi di chuột qua hoặc nhấp chuột.
4.3 Preprocessors CSS Có Những Tính Năng Gì?
Gợi ý trả lời: Preprocessors CSS là các công cụ giúp viết mã CSS dễ dàng và hiệu quả hơn. Preprocessors CSS cung cấp các tính năng như:
- Biến: Sử dụng các biến để lưu trữ giá trị và sử dụng lại trong mã CSS.
- Mixin: Tạo các khối mã CSS có thể tái sử dụng được.
- Nesting: Viết mã CSS theo dạng thụt lề để dễ đọc và tổ chức hơn.
- Functions: Tạo các hàm để thực hiện các thao tác CSS phức tạp.
4.4 Có Những Loại CSS Selectors Nào?
Gợi ý trả lời: CSS selectors được sử dụng để chọn các phần tử HTML mà bạn muốn định dạng bằng CSS. Có nhiều loại CSS selectors khác nhau, bao gồm:
- Element selectors: Chọn các phần tử dựa trên thẻ HTML của chúng.
- Id selectors: Chọn các phần tử dựa trên thuộc tính id của chúng.
- Class selectors: Chọn các phần tử dựa trên thuộc tính class của chúng.
- Attribute selectors: Chọn các phần tử dựa trên các thuộc tính HTML của chúng.
- Descendant selectors: Chọn các phần tử con của một phần tử khác.
- Sibling selectors: Chọn các phần tử anh em của một phần tử khác.
4.5 Những Ưu Điểm Khi Sử Dụng CSS Grid Layout Là Gì?
Gợi ý trả lời: CSS Grid Layout là một hệ thống bố cục linh hoạt cho phép bạn tạo ra các bố cục phức tạp một cách dễ dàng. Một số ưu điểm của việc sử dụng CSS Grid Layout bao gồm:
- Dễ sử dụng: Grid Layout dễ học và sử dụng hơn các hệ thống bố cục khác như float hoặc tables.
- Linh hoạt: Grid Layout cho phép bạn tạo ra nhiều loại bố cục khác nhau, từ đơn giản đến phức tạp.
- Có khả năng đáp ứng: Grid Layout tự động điều chỉnh bố cục của nó để phù hợp với kích thước màn hình khác nhau.
- Hỗ trợ tốt: Grid Layout được hỗ trợ tốt bởi các trình duyệt web hiện đại.
4.6 Có Những Loại CSS Positioning Nào?
Gợi ý trả lời: CSS positioning cho phép bạn định vị các phần tử HTML một cách chính xác trên trang web. Có bốn loại CSS positioning chính:
- Static: Vị trí mặc định của các phần tử HTML.
- Relative: Định vị phần tử so với vị trí ban đầu của nó.
- Absolute: Định vị phần tử so với viewport (cửa sổ trình duyệt).
- Fixed: Định vị phần tử so với viewport, nhưng nó sẽ giữ nguyên vị trí khi người dùng cuộn trang.
4.7 Sự Khác Nhau Giữa Display:Block Và Display:Inline Trong CSS Là Gì?
Gợi ý trả lời: Sự khác nhau giữa display:block và display:inline trong CSS là:
- Display:block: Khi một phần tử có display:block, nó sẽ bắt đầu một dòng mới và chiếm toàn bộ chiều rộng có sẵn của bố cục cha. Các phần tử lân cận sẽ được xếp chồng lên trên nó.
- Display:inline: Khi một phần tử có display: inline, nó sẽ chiếm không gian tối thiểu cần thiết để hiển thị nội dung của nó. Các phần tử lân cận sẽ được xếp cạnh nhau trên cùng một dòng.
4.8 Z-index Trong CSS Hoạt Động Như Thế Nào?
Gợi ý trả lời: Thuộc tính z-index được sử dụng để xác định thứ tự xếp chồng của các phần tử HTML. Phần tử có giá trị z-index cao hơn sẽ hiển thị ở trên các phần tử có giá trị z-index thấp hơn. z-index hữu ích khi bạn có nhiều phần tử chồng lên nhau và bạn muốn kiểm soát phần tử nào hiển thị ở trên cùng.
4.9 Giải Thích Về Cách Thức Hoạt Động Của CSS Variables Và Mixins Có Chức Năng Gì?
Gợi ý trả lời: CSS variables cho phép lưu trữ giá trị và sử dụng lại giá trị đó trong mã CSS. Ngoài ra, CSS variables được sử dụng để viết mã CSS dễ đọc, dễ bảo trì và dễ quản lý hơn.
5. Các Câu Hỏi Phỏng Vấn Front End JavaScript
5.1 Các Kiểu Dữ Liệu Cơ Bản Trong JavaScript Có Ý Nghĩa Gì?
Gợi ý trả lời: Ý nghĩa của những kiểu dữ liệu trong JavaScript là:
- Số (Number): Biểu diễn các giá trị số, bao gồm cả số nguyên và số thực.
- Chuỗi (String): Biểu diễn các chuỗi ký tự.
- Boolean (Boolean): Biểu diễn giá trị true hoặc false.
- Null (Null): Biểu diễn giá trị null.
- Undefined (Undefined): Biểu diễn giá trị undefined.
- Object (Object): Biểu diễn các tập hợp các cặp khóa-giá trị.
Có thể bạn quan tâm: câu hỏi phỏng vấn Java kèm gợi ý trả lời
5.2 Hãy Giải Thích Về Các Hàm (Functions) Trong JavaScript?
Gợi ý trả lời: Hàm (function) là một khối mã được sử dụng để thực hiện một nhiệm vụ cụ thể. Hàm có thể nhận tham số (parameters) và trả về giá trị (return value).
5.3 Nêu Cách Sử Dụng Phương Thức (Methods) Trong JavaScript?
Gợi ý trả lời: Phương thức là một hàm thuộc về một đối tượng (object). Phương thức được gọi bằng cách sử dụng toán tử chấm (.) sau tên đối tượng, tiếp theo là tên phương thức và ngoặc đơn chứa tham số (nếu có).
5.4 Cấu Trúc Của Đối Tượng (Objects) Trong JavaScript Là Gì?
Gợi ý trả lời: Một đối tượng được biểu diễn bằng cặp ngoặc nhọn, bên trong chứa các thuộc tính được phân cách bởi dấu phẩy. Mỗi thuộc tính bao gồm một khóa (key) – thường là chuỗi – và một giá trị (value) – có thể là bất kỳ kiểu dữ liệu nào trong JavaScript.
5.5 Sự Khác Biệt Giữa == Và === Trong JavaScript Là Gì?
Gợi ý trả lời: Sự khác biệt giữa == và === trong JavaScript là:
- == (Equality operator): So sánh giá trị của hai biểu thức, nhưng không so sánh kiểu dữ liệu của chúng.
- === (Strict equality operator): So sánh cả giá trị và kiểu dữ liệu của hai biểu thức.
5.6 Mảng (Arrays) Trong JavaScript Là Gì?
Gợi ý trả lời: Mảng (array) là một kiểu dữ liệu cơ bản trong JavaScript dùng để lưu trữ một tập hợp có thứ tự các giá trị, có thể là bất kỳ kiểu dữ liệu nào trong JavaScript như số, chuỗi, boolean, object, v.v. Mỗi giá trị trong mảng được gọi là một phần tử (element) và có vị trí (index) riêng biệt bắt đầu từ 0.
5.7 Lập Trình Hướng Đối Tượng (OOP) trong JavaScript Là Gì?
Gợi ý trả lời: Lập trình hướng đối tượng (OOP) là một phương pháp lập trình sử dụng các đối tượng và lớp (classes) để tổ chức mã. JavaScript là một ngôn ngữ lập trình hướng đối tượng linh hoạt, cho phép bạn tạo các đối tượng, lớp và sử dụng các khái niệm OOP như kế thừa (inheritance) và đa hình (polymorphism).
5.8 Sử Dụng Thư Viện JavaScript Như Thế Nào?
Gợi ý trả lời: Để sử dụng một thư viện JavaScript, bạn cần thực hiện các bước sau:
- Tải xuống thư viện: Bạn có thể tải xuống thư viện từ trang web chính thức của nó hoặc sử dụng trình quản lý gói như npm hoặc yarn.
- Nạp thư viện vào trang web của bạn: Bạn có thể nạp thư viện vào trang web của bạn bằng cách sử dụng thẻ <script> hoặc sử dụng trình quản lý gói.
- Sử dụng thư viện trong mã JavaScript của bạn: Tham khảo tài liệu của thư viện để tìm hiểu cách sử dụng các tính năng và API của nó
5.9 Có Mấy Cách Chính Để Xử Lý Sự Kiện Trong JavaScript?
Gợi ý trả lời: Để xử lý sự kiện trong JavaScript người ta thường áp dụng hai cách sau: Event Listeners (Người lắng nghe sự kiện) và Event Handlers (Bộ xử lý sự kiện).
6. Câu Hỏi Phỏng Vấn HTML
6.1 HTML Là Gì Và Vai Trò Của HTML?
Gợi ý trả lời: HTML (HyperText Markup Language) là ngôn ngữ đánh dấu được sử dụng để tạo cấu trúc và nội dung cho trang web. HTML là nền tảng cơ bản cho mọi trang web giúp cung cấp các thẻ và thuộc tính để định dạng văn bản, chèn hình ảnh, tạo liên kết,…
6.2 Nêu Sự Khác Nhau Giữa Id Và Class Trong HTML?
Gợi ý trả lời: Sự khác nhau giữa id và class trong HTML là:
- Id là một thuộc tính duy nhất để xác định một phần tử HTML cụ thể, thường được sử dụng để thao tác với các phần tử HTML bằng JavaScript hoặc CSS.
- Class là một thuộc tính có thể được sử dụng để gán một hoặc nhiều lớp cho nhiều phần tử HTML, thường được sử dụng để định dạng nhóm các phần tử HTML có cùng kiểu dáng hoặc hành vi.
6.3 Hãy Giải Thích Về Cấu Trúc Và Cú Pháp HTML?
Gợi ý trả lời:
- Cấu trúc HTML cơ bản bao gồm:
- DOCTYPE: Khai báo loại tài liệu HTML.
- <html>: Khai báo bắt đầu tài liệu HTML.
- <head>: Chứa thông tin meta về trang web.
- <body>: Chứa nội dung chính của trang web.
- Cú pháp HTML sử dụng các thẻ và thuộc tính để định dạng và cấu trúc nội dung.
- HTML phải tuân theo các quy tắc W3C (World Wide Web Consortium) để đảm bảo tính hợp lệ và tương thích.
6.4 Phân Biệt Các Loại Thẻ HTML
Gợi ý trả lời: Thẻ HTML được phân biệt như sau:
- Thẻ block-level: Tạo một khối riêng biệt trên trang web, bắt đầu từ dòng mới và có thể bao gồm các thẻ khác bên trong. Ví dụ: <h1>, <div>, <p>.
- Thẻ inline-level: Chỉ chiếm một phần không gian trên dòng hiện tại và không thể bao gồm các thẻ khác bên trong. Ví dụ: <span>, <strong>, <a>.
- Thẻ self-closing: Không cần thẻ đóng, thường được sử dụng cho các thẻ inline-level. Ví dụ: <img>, <br>, <input>.
6.5 Hãy Nêu Sự Khác Biệt Giữa Doctype HTML 4.01 Và HTML5?
Gợi ý trả lời: Sự khác biệt giữa doctype HTML 4.01 và HTML5 là:
- Doctype HTML 4.01 sử dụng cú pháp <!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01//EN” “http://www.w3.org/TR/html4/strict.dtd”>.
- Doctype HTML5 sử dụng cú pháp đơn giản hơn <!DOCTYPE html>.
HTML5 có nhiều tính năng mới so với HTML 4.01, như: các thẻ semantic, audio/video, canvas, geolocation, v.v.
6.6 Nêu Các Cách Để Kiểm Tra Tính Hợp Lệ Của Code HTML?
Gợi ý trả lời: Để kiểm tra tính hợp lệ của code HTML có thể sử dụng một trong các cách sau:
- Sử dụng công cụ validation trực tuyến
- Sử dụng trình duyệt web với tính năng developer tools (kiểm tra lỗi HTML).
- Sử dụng các công cụ kiểm tra linting/formatting code như ESLint, Prettier.
6.7 Microdata Là Gì Và Tầm Quan Trọng Của Nó?
Gợi ý trả lời: Microdata là một tập hợp các thuộc tính HTML được sử dụng để nhúng dữ liệu có cấu trúc vào trang web. Microdata giúp các công cụ tìm kiếm và các ứng dụng khác hiểu rõ hơn về nội dung trang web, cải thiện SEO và khả năng sử dụng.
6.8 Sử Dụng Các Thẻ Heading (H1, H2, H3, V.V.) Để Làm Gì?
Sử dụng thẻ heading để tạo cấu trúc logic cho nội dung trang web, đồng thời cung cấp cho người dùng và công cụ tìm kiếm thông tin về thứ bậc và tầm quan trọng của các phần nội dung.
6.9 Để Tối Ưu Hóa Hiệu Suất Hình Ảnh Trong HTML Nên Làm Gì?
Gợi ý trả lời: Để tối ưu hóa hiệu suất hình ảnh trong HTML nên:
- Sử dụng định dạng hình ảnh phù hợp (JPEG, PNG, SVG).
- Chọn kích thước hình ảnh phù hợp với nội dung.
- Sử dụng thuộc tính alt để cung cấp văn bản thay thế cho hình ảnh.
- Sử dụng kỹ thuật lazy loading để tải hình ảnh khi người dùng cuộn xuống trang.
Như vậy, bài viết trên của JobsGo đã tổng hợp và gửi đến bạn đọc bộ các câu hỏi phỏng vấn Front End thông dụng nhất dành cho thực tập sinh. Hy vọng nó sẽ là kinh nghiệm giúp các bạn vượt qua vòng phỏng vấn thành công.
Tìm việc làm ngay!(Theo JobsGO - Nền tảng tìm việc làm, tuyển dụng, tạo CV xin việc)