Câu hỏi phỏng vấn Frontend (Intern/Fresher):
Kỹ năng của Frontend Developer:
Một Frontend Developer cần có kiến thức vững về các công nghệ cơ bản như HTML, CSS, JavaScript, và các framework như ReactJS. Những kỹ năng này giúp họ tạo ra giao diện người dùng đẹp mắt và hiệu quả cho web và ứng dụng di động.
ReactJS:
ReactJS là một thư viện JavaScript mạnh mẽ, chủ yếu được sử dụng để xây dựng giao diện người dùng động cho các ứng dụng web và di động. Nó giúp đơn giản hóa việc phát triển giao diện, thông qua việc chia giao diện thành các thành phần có thể tái sử dụng, giúp tăng hiệu suất và dễ bảo trì.
Lợi ích của REST (Representational State Transfer):
REST là một phong cách kiến trúc cho việc phát triển web services. Lợi ích của REST bao gồm tính đơn giản, tính nhẹ và khả năng tương thích cao với nhiều công nghệ truyền tải dữ liệu, đặc biệt là trong việc xây dựng các API cho các ứng dụng web và di động.
CSS Grid:
CSS Grid là một hệ thống bố cục mạnh mẽ giúp chia trang thành các lưới (grid) với các hàng và cột. Nó giúp các Frontend Developer dễ dàng bố trí các phần tử HTML một cách linh hoạt và chính xác, đồng thời tối ưu hóa giao diện người dùng, đặc biệt khi làm việc với các thiết bị có kích thước màn hình khác nhau.
Thẻ meta trong HTML:
Thẻ meta trong HTML là một thẻ không hiển thị nội dung trực tiếp trên trang web, nhưng lại chứa các thông tin quan trọng như mô tả trang, từ khóa SEO, và thông tin về mã hóa ký tự (charset). Thẻ này giúp cải thiện hiệu quả SEO và khả năng hiển thị trang web trên các trình duyệt.
XSS (Cross-Site Scripting):
XSS là một loại tấn công bảo mật trong đó hacker tiêm mã JavaScript độc hại vào trang web, với mục đích đánh cắp thông tin từ người dùng hoặc tấn công các hệ thống. Việc phòng chống XSS đòi hỏi phải kiểm tra và lọc kỹ các đầu vào từ người dùng.
Khi nào nên dùng jQuery:
jQuery là một thư viện JavaScript phổ biến giúp dễ dàng thao tác DOM và tạo hiệu ứng động mà không phải viết nhiều mã JavaScript phức tạp. Nó hỗ trợ tất cả các trình duyệt và giúp rút ngắn thời gian phát triển, đặc biệt hữu ích trong các dự án cần tương thích với nhiều nền tảng.
Lợi ích của CoffeeScript:
CoffeeScript là một ngôn ngữ biên dịch sang JavaScript với cú pháp ngắn gọn và dễ đọc hơn. Nó giúp giảm bớt độ phức tạp trong việc viết mã JavaScript, đồng thời giúp dễ dàng bảo trì và phát triển ứng dụng khi làm việc với thư viện JavaScript.
Câu hỏi phỏng vấn Frontend (Senior/Manager):
Stringify trong JavaScript:
Phương thức JSON.stringify() trong JavaScript chuyển đổi các đối tượng JavaScript thành chuỗi JSON. Đây là bước quan trọng khi bạn cần truyền tải dữ liệu giữa client và server, hoặc lưu trữ dữ liệu dạng chuỗi trong localStorage.
MySQL vs MongoDB:
MySQL là một hệ quản trị cơ sở dữ liệu quan hệ (RDBMS), sử dụng SQL để quản lý dữ liệu có cấu trúc trong các bảng, với quan hệ rõ ràng giữa các bảng.
MongoDB là cơ sở dữ liệu NoSQL, lưu trữ dữ liệu dưới dạng tài liệu JSON, phù hợp với các ứng dụng cần khả năng mở rộng và dữ liệu không có cấu trúc chặt chẽ.
CSS Image Sprites:
CSS Image Sprites là kỹ thuật kết hợp nhiều hình ảnh nhỏ thành một hình ảnh duy nhất, sau đó sử dụng CSS để hiển thị các phần của hình ảnh đó. Phương pháp này giúp giảm số lượng yêu cầu HTTP, cải thiện thời gian tải trang.
Tối ưu giao diện người dùng:
Để tối ưu giao diện người dùng, Frontend Developer cần phải giảm thiểu tài nguyên tải, sử dụng Lazy Loading để tải tài nguyên khi người dùng cần, và có thể sử dụng các thư viện mã nguồn mở để giảm tải công việc. Điều này giúp tối ưu hiệu suất và trải nghiệm người dùng.
Prototype Design Pattern:
Prototype Design Pattern là một mẫu thiết kế cho phép bạn sao chép đối tượng thay vì tạo mới, giúp tiết kiệm thời gian và tài nguyên khi tạo ra các đối tượng mới. Nó rất hữu ích khi bạn cần tạo các đối tượng có cấu trúc giống nhau, nhưng với một số thay đổi nhỏ.
CSP (Content Security Policy):
CSP là một chính sách bảo mật giúp ngăn ngừa các cuộc tấn công XSS (Cross-Site Scripting). Nó cho phép bạn định nghĩa các nguồn tài nguyên được phép tải và thực thi trên trang web, giúp bảo vệ người dùng khỏi mã độc hại.
AngularJS vs jQuery:
jQuery là một thư viện JavaScript tập trung vào việc thao tác DOM và hiệu ứng động, trong khi AngularJS là một framework JavaScript hoàn chỉnh để phát triển ứng dụng web phức tạp. AngularJS cung cấp các công cụ mạnh mẽ để xây dựng các ứng dụng một trang (SPA) với khả năng kết nối dữ liệu hai chiều và xây dựng UI động.
ClickJacking:
ClickJacking là một kiểu tấn công mà kẻ tấn công tạo ra một trang web có các yếu tố ẩn dưới một lớp trang web hợp pháp, dụ dỗ người dùng nhấp vào các phần tử này mà họ không biết. Điều này có thể dẫn đến việc lừa người dùng thực hiện các hành động không mong muốn, như chia sẻ thông tin cá nhân hoặc kích hoạt chức năng không an toàn.
Những câu hỏi này không chỉ giúp các ứng viên kiểm tra kỹ năng kỹ thuật, mà còn đánh giá khả năng hiểu sâu các vấn đề phức tạp trong phát triển frontend. Các câu trả lời cần chi tiết và rõ ràng để thể hiện khả năng giải quyết vấn đề của ứng viên trong các tình huống thực tế.