Câu hỏi phỏng vấn cho fresher front end của FPT bằng reactjs và javascript. Gồm các chủ đề javascript cơ bản, react cơ bản, những câu hỏi mẹo hay gài. Callbach hell là gì, async là gì ? promise là gì ? SQL và một số backend đã từng tiếp xúc.
JavaScript Callback gì? Nói cách đơn giản: Callback hàm thực sau hàm khác thực xong - có tên callback callback tức ta truyền đoạn code (Hàm A) vào đoạn code khác (Hàm B) Tới thời điểm đó, Hàm A hàm B gọi lại (callback) Callback cách để đảm bảo code định không thực thi code khác thực xong Callback thường sử dụng EventListener để bắt kiện gọi đến hàm callback Synchronous callback function gọi blocking callback function Lý Higher-Order Function (hàm bậc cao) khơng hoàn thành callback chưa chạy xong Asynchronous callback cịn gọi non-blocking callback Hàm bậc cao hồn thành thực thi, không đợi callback function Hàm bậc cao đảm bảo thực thi callback function kiện sau Ở ví dụ đây, hàm later()được thực thi sau giây Promise ? Về khái niệm, Promise "lời hứa" đại diện cho giá trị chưa tồn giá trị trả vào thời gian tương lai Async/Await ? Async dùng để khai báo hàm bất đồng Các hàm bất đồng trả giá trị Await sử dụng để chờ Promise Nó sử dụng bên khối Async Từ khóa Await làm cho JavaScript đợi promise trả kết Có cách để copy Object? Với kiểu liệu number, string, boolean, null, undefined gán giá trị gắn chặt với biến liên quan đến biến copy .Cịn kiểu liệu object, array cẩn thận copy nó thể có liên quan với Nên thay đổi giá trị làm sai lệch giá trị object Gán object làm thay đổi object gốc obj1 obj2 trỏ tới obj gốc Có loại copy là: 2.1 shallow copy Nó copy giá trị number, string, boolean, lại ko chép liệu array, object Nếu objec cha có obj thàng thay đổi làm obj gốc thay đổi (spread syntax) 2.2 deep copy: Tạp hồn tồn mảng hay obj khơng liên quan tới obj cũ Shallow copy: Sử dụng Spread Syntax : var clonedObj = { obj }; Sử dụng Object.assign: var clonedObj = Object.assign({}, obj); Deep copy: Sử dụng JSON.stringify JSON.parse: var deepClone = JSON.parse(JSON.stringify(obj)); Miêu tả trình hoạt động Redux: Redux js thư viện giải việc quan trọng chia sẻ cập nhật trạng thái (state) Nó gồm có index, actions, reducer rootReducer Sử dụng useSelect useDispatch để connect với store useEffect ? useEffect Hook as componentDidMount, componentDidUpdate, and componentWillUnmount Và Lifecycle cuối hay sử dụng hàm componentWillUnmount, sử dụng useEffect() định nghĩa hàm componentWillUnmount Như biết componentWillUnmount chạy component chuẩn bị remove khỏi tree DOM Xác thực qua gì? Othentication OAth 2, Open ID google,facebook Truyền qua header Arrow function khác với funtion bình thường ? Cú pháp arrow function bỏ qua từ khố return Arrow function không định nghĩa giá trị this riêng giống function Trong chế độ none-strict, function print định nghĩa this đối tượng global (đối với trình duyệt window) Do đó, this.x tương đương với window.x Ngược lại với function, arrow function khơng định nghĩa lại this Do đó, giá trị this ứng với ngữ cảnh gần Vì vậy, đoạn code this.x tương ứng với giá trị x truyền vào This từ khoá quen thuộc nhiều ngơn ngữ, dùng để trỏ tới object gọi hàm javasrcipt Muốn hỏi hơng ? Hỏi cơng việc cần làm để join vào tiếp cận nhanh ? Mơ hình phát triển phần mềm ? : MVC, Agile, Walterfall, Mơ hình Agile- Phương pháp Scrum Trong team thường có người CSS DOM HTML ? DOM (The Document Object Model) giao diện lập trình cho document HTML Nó đại diện cho trang để chương trình thay đổi cấu trúc, kiểu nội dung tài liệu DOM đại diện cho tài liệu dạng nút đối tượng Điểm khác thẻ gì? span phần tử nội tuyến (inline) div phần tử khối (block) Các thẻ Meta gì? Thẻ meta đoạn văn mô tả nội dung trang; thẻ meta khơng xuất trang mà xuất mã nguồn trang Các thẻ meta mơ tả nội dung nhỏ giúp cho cơng cụ tìm kiếm biết nội dung trang web Điểm khác ID selector Class selector CSS? ID Mỗi phần tử có ID trang HTML có phần tử có ID Class ngược lại Bạn sử dụng class nhiều phần tử phần tử có nhiều class Mọi thơng tin tạo kiểu cần áp dụng cho nhiều đối tượng trang nên thực với class Làm để áp dụng quy tắc CSS cụ thể cho media? Quy tắc @media sử dụng truy vấn media để áp dụng kiểu khác cho loại/ thiết bị media khác Trong CSS Pseudo-class gì? Một Pseudo class CSS dùng để xác định trạng thái đặc biệt phần tử Nó kết hợp với chọn CSS (selector) để thêm hiệu ứng cho phần tử có dựa trạng thái chúng Điểm khác biệt relative, fixed, absolute statically positioned element gì? ● ● ● ● Relative phần tử định vị tương đối so với vị trí bình thường Fixed phần tử định vị liên quan đến cửa sổ trình duyệt Absolute phần tử đặt hồn tồn vào vị trí gốc Static giá trị mặc định, tất phần tử theo thứ tự chúng xuất tài liệu PUT POST khác nào? PUT: Thay tài nguyên đích payload yêu cầu Có thể sử dụng để cập nhật tạo tài nguyên POST: Thực xử lý tài nguyên cụ thể payload Có thể sử dụng cho hành động khác bao gồm tạo tài nguyên mới, tải lên tệp gửi biểu mẫu web 10 Sự khác biệt cookies, session storage, and local storage? Local storage tên gọi (bộ nhớ cục bộ) nhớ trình duyệt, có khả lưu trữ vô thời hạn lên tới 10MB, session storage (bộ nhớ phiên) vậy, tên gọi nó, nhớ dựa phiên bị xóa sau đóng trình duyệt bạn Bộ nhớ phiên lưu trữ hơn, lên đến 5MB Cookie liệu nhỏ lưu trữ trình duyệt, lưu trữ đến 4KB truy cập thơng qua máy chủ trình duyệt 11 CORS gì? CORS viết tắt Cross-Origin Resource Sharing CORS chế trình duyệt cho phép truy cập có kiểm sốt vào tài ngun nằm bên ngồi miền định Nó mở rộng thêm tính linh hoạt cho sách nguồn gốc 12 Promise gì? Promise dùng để xử lý hoạt động bất đồng Chúng xử lý nhiều hoạt động bất đồng cách dễ dàng cung cấp khả xử lý lỗi tốt so với callback event 13 Các state khác promise? Một promise có state: ● fullfilled: hồn thành ● rejected: lỗi/ khơng thể hồn thành ● pending: chờ 14 Hoisting JavaScript gì? Hoisting thuật ngữ dùng để mô tả di chuyển biến hàm lên đầu phạm vi chúng, xác định biến hàm 15 Các giá trị falsy JavaScript gì? Là giá trị chuyển đổi thành boolean trở thành sai Bất kỳ giá trị đây: '' null undefined NaN false -0 0n // BigInt, when used as a boolean, follows the same rule as a Number II Tổng hợp câu hỏi vấn Front-end Developer Bản chất Responsive gì? Có cách khai báo CSS? Hãy nêu độ ưu tiên CSS? Sass với Less giống khác điểm gì? Phân biệt tải Async, Defer tải thơng thường tải javascript Scope javascript gì, có loại? Trong javascript có loại scope: Global scope: có phạm vị hoạt động mã javascript bạn Function scope: có phạm vi hoạt động function mà bạn khai báo biến Block scope: có phạm vị cặp dấu {} mà bạn khai báo biến (ES6) Phân biệt ReactJS Angular nên dùng nào? React library- angular frameword Namespace javascript gì? Cloresure javascript gì, cách dùng Một closure inner function (hàm khai báo bên hàm khác), truy cập tới biến outer function (hàm chứa inner function) - scope chain Closure có scope chain, có thể: truy cập tới biến khai báo bên nó, truy cập tới biến outer function, truy cập tới biến global 10 Phân biệt call, apply, bind, cách dùng Tóm tắt nội dung hàm số Bạn nhớ nội dung call, apply bind cách ngắn gọn sau: call Gọi hàm cho phép bạn truyền vào object đối số phân cách dấu phẩy (Comma) function.call(thisArg, arg1, arg2, ) + Inline: Items will be align on the same line Cannot set width, height , top and bottom + Inline-block: It is same as inline type but It can be set width, height , top , bottom." Thuộc tính z-index dùng để làm gì? (What is purpose of z-index attribute ?) Mục đích: dùng để kiểm tra kinh nghiệm ứng viên style nhiều thành phần/component với cách xếp vị trí chúng Tham khảo câu trả lời vấn mẫu Tiếng Việt: "Thuộc tính z-index thiết lập thứ tự xếp chồng thành phần vị trí Thứ tự chồng xếp dựa theo giá trị số, thành phần HTML có số z-index cao nằm trên, ngược lại nằm dưới, giá trị mặc định 0, sử dụng số âm z-index có tác dụng với thuộc tính/attribute khơng phải static" Tham khảo câu trả lời vấn mẫu Tiếng Anh: "The z-index property specifies the stack order of an element An element with greater stack order is always in front of an element with a lower stack order The default value is 0, it can use negative number Z-Index has effect with position type which is not static ( default )" Liệt kê css frameworks tiếng/phổ biến/được ưa thích ? Kể tên chức hay dùng css framework ? (List some of famous/popular css framework ?List some functions/feature use regularly ?) Mục đích: kiểm tra mức độ hiểu biết/ đa dạng va chạm công nghệ ứng viên project làm Tham khảo câu trả lời vấn mẫu Tiếng Việt: + số css frameworks bật : Bootstrap 3/4 , Ant design, Material UI , Bulma, Foundation _ số chức thường dùng với css frameworks: + Grid system ( dùng để layout/dàn trang ) + select component + table ( list data với dạng table ) + pagination ( phân trang ) + Date picker ( UI cho lịch, ngày/tháng/năm ) Tham khảo câu trả lời vấn mẫu Tiếng Anh: + Some outstanding frameworks : Bootstrap 3/4, Ant design, Material UI, Bulma, Foundation _ Some feature are usually used with css frameworks: + Gris system + select component + table + pagination + Date picker dấu "==" "===" khác nào? (what is difference between mark "==" and "===" ?) Mục đích: kiểm tra kiến thức toán tử "=" javascript Tham khảo câu trả lời vấn mẫu Tiếng Việt: + dấu "==" dùng để so sánh giá trị đối số, "===" kiểm tra giá trị kiểu liệu Tham khảo câu trả lời vấn mẫu Tiếng Anh: + "==" mark is to compare values between variables, while "===" mark is to verify their values and data types Sự khác localStorage, sessionStorage cookie ? (What are differences between localStorage, sessionStorage and cookie ?) Mục đích: kiểm tra hiểu biết kiến thức, kinh nghiệm với front-end dev hay xử lý data ( từ cấp độ junior cứng, middle trở lên ) Tham khảo câu trả lời vấn mẫu Tiếng Việt: + localStorage Khả lưu trữ vơ thời hạn: Có nghĩa bị xóa JavaScript, xóa nhớ trình duyệt, xóa localStorage API Lưu trữ 5MB: Local Storage cho phép bạn lưu trữ thông tin tương đối lớn lên đến 5MB, lưu lượng thông tin lớn loại Không gửi thông tin lên server Cookie nên bảo mật tốt + SessionStorage Lưu Client: Cũng giống localStorage sessionStorage dùng để lưu trữ liệu trình duyệt khách truy cập (client) Mất liệu đóng tab: Dữ liệu sessionStorage bạn đóng trình duyệt Dữ liệu khơng gửi lên Server Thơng tin lưu trữ nhiều cookie (ít 5MB) + Cookie Thông tin gửi lên server Cookie chủ yếu để đọc phía máy chủ (cũng đọc phía máy khách), localStorage sessionStorage đọc phía máy khách Có thời gian sống cho phép lưu trữ tối đa 4KB vài chục cookie cho domain Phân biệt callback, promises async/await javascript ? (What are differences between callback, promises and async/await in javascript?) Mục đích: kiểm tra kiến thức độ hiểu biết lập trình bất đồng javascript, khái niệm , công nghệ đại mà middle level chắn phải biết Kiểm tra mức độ hiểu rõ khó khăn xử lý API/Data, giao tiếp client-server Tham khảo câu trả lời vấn mẫu Tiếng Việt: + khái niệm: Bởi JavaScript ngơn ngữ single-thread, tức có thread để thực thi dòng lệnh Nếu chạy theo chế đồng (synchonous) thực tính tốn phức tạp, gọi AJAX request tới server, gọi database, thread dừng để chờ, làm tồn trình duyệt bị… treo =>> sinh callBack +Callback (es5): Callback hàm javascript nhiên khác với hàm thông thường khác hàm callback không gọi cách trực tiếp mà có kiện diễn chúng thực thi +Promises (es6): callback có số nhược điểm code dài dòng, callback hell,… nên người ta tạo pattern gọi Promise! Nhìn chung, promises giải vấn đề callback hell, làm code trông gọn với promises chain số trường hợp khó chiu ( phải truyển callback vào hàm then catch) gây promises hell =>> async await + Async/await ( es7): + Cần khai báo từ khóa async trước từ khóa định nghĩa hàm + Chúng giúp viết code trơng đồng (synchonous), thật lại chạy bất đồng (asynchonous) + Code dễ đọc rất nhiều, không cần phải then catch + Debug dễ nhiều Làm để loại bỏ phần tử thừa mảng với javascript ?, liệt kê cách mà ứng viên biết? (How to remove duplicated/redundant value in array with Javascript , list them as many as candidate knows ?) Mục đích: dùng để phân loại junior middle level, với ứng viên trải qua dự án sử dụng nhiều javascript gặp trường hợp này, để xem ứng viên xử lý vấn đề code thực tế Tham khảo câu trả lời vấn mẫu Tiếng Việt: Cách 1: dùng new Set ES6 : [ new Set(array)]; Cách : dùng hàm filter ES6 : array.filter((v,i) => array.indexOf(v) === i) Cách 3: dùng hàm thư viện lodash : Unique Các câu hỏi vấn tìm việc làm thường gặp khác Giới thiệu sơ lược thân bạn? (Could you briefly Introduce yourself?) Hầu hết nhà tuyển dụng dùng câu hỏi để bắt đầu câu chuyện với ứng viên Mục đích câu hỏi để đánh giá phong thái cách trình bày ứng viên Lúc này, tùy thuộc vào câu trả lời ứng viên mà nhà tuyển dụng đánh giá có phải ứng viên phù hợp hay không đưa câu hỏi để đánh giá kỹ năng, tính cách kinh nghiệm làm việc Tip: Để trả lời tốt câu hỏi này, bạn cần đưa khái quát thông tin cá nhân có liên quan, hữu ích cho vị trí mà ứng tuyển như: cơng việc tại, trình độ học vấn, mục tiêu nghiệp,… Bạn nên cân nhắc giới thiệu thân theo trình tự thời gian khứ, tương lai gói gọn tối đa phút Chia sẻ ngắn sở thích, tính cách cách thu hút nhà tuyển dụng, nhiên khơng nên nói q nhiều vấn đề với nhà tuyển dụng Tham khảo câu trả lời vấn mẫu Tiếng Việt: "Trước giới thiệu thân mình, em/tơi xin gửi lời cảm ơn chân thành tới anh/chị tạo hội cho em/tôi để trao đổi vị trí ứng tuyển q cơng ty Em chào anh/ chị, tên em Mai, họ tên đầy đủ em Trịnh Thị Tuyết Mai Em sinh viên trường Trường đại học X, thời gian làm sinh viên em tham gia số công việc bán thời gian không thật ấn tượng, cơng việc em làm đơn giản, thông qua chúng em học tính kiên nhẫn tỉ mỉ Thơng qua hoạt động này, em có kinh nghiệm việc nắm bắt tâm lý người khác, có thêm kỹ quan sát, có khả chịu áp lực cao Và em tin điều có ích vị trí Qua tìm hiểu kỹ vị trí cơng việc mơi trường làm việc bên kinh nghiệm sở trường em có, em thực mong muốn có hội làm việc anh chị công ty Y với vị trí nhân viên tư vấn khách hàng." Tham khảo câu trả lời vấn mẫu Tiếng Anh: "Before I introduce myself, I would like to thank you very much for giving me / me the opportunity to talk about the position of your company / sister, my name is Mai, my full name is Trinh Thi Tuyet Mai I am a fresh graduate of University X, when I was a student, I used to have some part-time jobs but none is not really significant, because the work I did was quite simple Nonetheless I learned to be patient and meticulous Through these jobs, I have more experience in interpersonal skills, observation, and high pressure tolerance I believe these will be useful for this position through understanding carefully about the job position and working environment For me, I really want to have the opportunity to work with you at company Y as a client consultant " Bạn mơ tả sơ lược cơng việc bạn làm? Nhiệm vụ cơng việc gần bạn gì? (Can you briefly describe the work you have done? What was the main tasks at your most recent job?) Mục đích câu hỏi để đánh giá lực kinh nghiệm làm việc bạn có phù hợp với vị trí ứng tuyển hay khơng Tip: Được đánh giá câu hỏi vấn thường gặp quan trọng, cách trả lời vấn câu hỏi nên chân thật, giống bạn chia sẻ kinh nghiệm thân, đừng cố nói khơng biết, bạn khơng trả lời nhà tuyển dụng hỏi sâu chun mơn Hãy nói bạn học hay biết cơng việc cách ngắn gọn đủ, không nên kể chi tiết cơng việc, q dài dịng Trong trường hợp bạn chưa có nhiểu kinh nghiệm, nói bạn muốn theo đuổi công việc dành nhiều thời gian học hỏi, phát triển kỹ năng, bạn mong muốn tìm cơng ty tốt để gắn bó cống hiến lâu dài Tham khảo câu trả lời vấn mẫu Tiếng Việt: "Trước kia, làm trợ lý hành cho giám đốc Nhà xuất Sách hỗ trợ xếp lịch trình cho cho ơng cho tồn văn phịng Cơng việc tơi chăm sóc tất chi tiết hành để ơng tập trung vào dự án Tơi làm tất thứ từ việc đặt vé chuyến bay để chuẩn bị in ấn tường trình để nộp làm báo cáo chi phí.” 26 Bạn có dự định học thêm khóa học/kỹ thời gian tới khơng? Vì bạn muốn học khóa học/ kỹ đó? (Are you planning to learn any more courses / skills in the near future? Why you want to learn that course / skill?) Đây câu hỏi để nhà tuyển dụng hiểu thêm kế hoạch định hướng bạn Những khóa học phát triển kỹ có liên quan đến cơng việc định hướng phát triển bạn tương lai điểm cộng nhà tuyển dụng Tip: Hãy chia sẻ thành thật kế hoạch dự định việc học bạn, tới chưa có kế hoạch trả lời chưa thời gian tới cần bổ sung kiến thức cho cơng việc, bạn dành thời gian để học Nếu bạn theo học khóa chia sẻ lý bạn dành thời gian học khóa đó, tốt nên liên quan đến phát triển cho công việc mà bạn ứng tuyển Tham khảo câu trả lời vấn mẫu Tiếng Việt: "Em học khóa tiếng Anh vào buổi tối để rèn luyện thêm kỹ cho mình, giúp em thăng tiến tương lai em biết vị trí Sales bên làm việc với khách hàng nước ngồi nhiều." Các câu hỏi chung: Bạn học ngày hơm qua/tuần này?? Điều lập trình làm bạn hứng thú? Một thử thách mặt kĩ thuật bạn trải qua gần bạn giải nào? Bạn cân nhắc Giao diện người dùng (UI), Vấn đề bảo mật (Security), Hiệu suất (Performance), Khả tối ưu cho máy tìm kiếm (SEO), Khả bảo trì (Maintainability) hay Công nghệ (Technology) xây dựng ứng dụng/trang web? Hãy nói mơi trường lập trình mà bạn muốn Những hệ thống quản lý phiên (version control systems) mà bạn sử dụng cảm thấy quen thuộc? Bạn trình bày mạch làm việc (workflow) bạn bạn tạo trang web khơng? Nếu bạn có stylesheet khác nhau, bạn tích hợp chúng vào trang tốt nhất? Bạn trình bày khác progressive enhancement graceful degradation không? Bạn tối ưu tài nguyên (assets/resources) website nào? Một trình duyệt tải tài nguyên lúc từ tên miền (domain) cho trước? Các exception gì? Nêu cách để giảm tải trang web (perceived thời gian tải thực tế (actual load time)) Nếu bạn tham gia vào dự án họ xài nút Tab bạn sử dụng nút dấu cách (spaces), bạn làm gì? Trình bày cách bạn làm trang slideshow đơn giản Nếu bạn chun sâu cơng nghệ (technology) năm cơng nghệ gì? Giải thích tầm quan trọng standards standards bodies Flash of Unstyled Content gì? Bạn tránh FOUC nào? Giải thích ARIA screenreaders gì, làm để làm cho trang web truy cập Giải thích vài ưu khuyết điểm CSS animations so với JavaScript animations CORS từ viết tắt đề cập đến vấn đề nào? Các câu hỏi HTML: Một doctype làm gì? Sự khác chế độ full standards, chế độ almost standards chế độ quirks? Sự khác HTML XHTML gì? Có vấn đề khơng cung cấp (serving) trang theo kiểu application/xhtml+xml? Bạn cung cấp trang web có nội dung viết nhiều ngơn ngữ nào? Bạn phải cảnh giác điều thiết kế phát triển trang web đa ngôn ngữ? Những thuộc tính data- có lợi cho gì? Hãy xem HTML5 tảng web mở (open web platform) Những building blocks HTML5 gì? Trình bày khác cookie, sessionStorage localStorage Trình bày khác , Tại việc đặt thẻ (tag) CSS thẻ thẻ JS trước thẻ ý tưởng tốt? Bạn có biết trường hợp ngoại lệ khác khơng? Progressive rendering gì? Tại bạn sử dụng thuộc tính srcset tag img? Giải thích q trình mà trình duyệt sử dụng phân tích nội dung thuộc tính Trước bạn sử dụng ngôn ngữ template HTML khác chưa? Các câu hỏi CSS: Điểm khác biệt class ID CSS gì? Sự khác “resetting” “normalizing” CSS gì? Bạn chọn nào, sao? Trình bày Floats cách chúng hoạt động Trình bày z-index làm để nội dung stack với định hình Trình bày BFC (Block Formatting Context) cách hoạt động Các kĩ thuật clearing khác kĩ thuật phù hợp với hồn cảnh nào? Giải thích CSS sprites, làm để bạn thực chúng trang web Những kĩ thuật thay hình ảnh mà bạn thích bạn sử dụng kĩ thuật nào? Bạn tiếp cận để khắc phục vấn đề trình bày trình duyệt cụ thể? Bạn cung cấp trang bạn trình duyệt hạn chế tính nào? Bạn sử dụng kĩ thuật hay quy trình nào? Những cách khác để ẩn giấu element cách trực quan (và làm cho chúng hiển thị với người đọc qua hình)? Bạn sử dụng hệ thống grid chưa, có, bạn thích hơn? Bạn sử dụng media queries hay layout/CSS cụ thể cho mobile chưa? Bạn có quen với việc trình bày/tạo dáng cho SVG? Bạn tối ưu trang web cho việc in ấn nào? Một vài điểm kiểu “A rồi” việc viết CSS hiệu quả? Các ưu/khuyết điểm việc sử dụng CSS preprocessors? Trình bày điểm bạn thích khơng thích CSS preprocessors mà bạn sử dụng Bạn thực thách thức thiết kế web có sử dụng font khơng phải tiêu chuẩn (non-standard fonts) nào? Giải thích cách mà trình duyệt định element tương ứng với CSS selector Trình bày pseudo-elements thảo luận xem chúng dùng để làm Giải thích hiểu biết bạn box model làm bạn báo với trình duyệt CSS để render layout bạn box models khác Đoạn code * { box-sizing: border-box; } làm điều gì? Những ưu điểm gì? Liệt kê giá trị thuộc tính display mà bạn nhớ Sự khác inline inline-block gì? Sự khác thành phần có thuộc tính position với giá trị: relative, fixed, absolute, có vị trí tĩnh (statically positioned element)? Chữ ‘C’ CSS viết tắt từ Cascading Mức độ ưu tiên xác định việc gán style (cho vài ví dụ)? Bạn tận dụng hệ thống nào? Những framework CSS bạn sử dụng máy bạn, sản phẩm đó? Bạn thay đổi/cải tiến chúng nào? Bạn có sử dụng CSS Flexbox hay Grid chưa? Responsive design khác adaptive design nào? Bạn có làm việc với thiết bị hình retina chưa? Nếu có, bạn sử dụng dùng kĩ thuật nào? Có lý bạn muốn sử dụng translate() thay absolute positioning khơng, ngược lại? Và sao? Các câu hỏi JavaScript: Giải thích event delegation Giải thích cách mà this hoạt động JavaScript Giải thích cách mà prototypal inheritance hoạt động Bạn nghĩ AMD so với CommonJS? Giải thích đoạn code sau khơng hoạt động IIFE: function foo() { }(); Cần thay đổi để làm trở thành IIFE? Sự khác biến: chứa null, chứa undefined chưa khai báo (undeclared) gì? Bạn kiểm tra trạng thái nào? Một closure gì, bạn sử dụng / bạn sử dụng nó? Một trường hợp sử dụng điển hình cho anonymous functions? Bạn tổ chức code bạn nào? (module pattern, classical inheritance?) Sự khác host objects native objects gì? Nêu khác giữa: function Person(){}, var person = Person(), var person = new Person()? Sự khác call apply gì? Giải thích Function.prototype.bind Bạn sử dụng document.write() nào? Sự khác feature detection, feature inference, việc sử dụng UA string gì? Giải thích Ajax nhiều thơng tin chi tiết Những ưu khuyết điểm việc sử dụng Ajax gì? Giải thích cách JSONP làm việc (và thật khơng phải Ajax nào) Bạn sử dụng JavaScript templating chưa? Nếu có, bạn sử dụng thư viện nào? Giải thích “hoisting” Trình bày event bubbling Trình bày khác giữ “attribute” “property”? Tại việc mở rộng object xây dựng sẵn JavaScript ý tưởng tốt? Sự khác event load event DOMContentLoaded document? Sự khác == and === gì? Giải thích same-origin policy liên quan với JavaScript Làm cho hàm hoạt động: duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5] Tại lại gọi Ternary expression, từ “Ternary” có nghĩa gì? “use strict”; gì? Những điểm lợi hại sử dụng nó? Tạo vịng lặp for cho output từ đến 100, output “fizz” thay cho số chia hết cho 3, “buzz” thay cho số chia hết cho “fizzbuzz” thay cho số chia hết cho Tại sao, nói chung, việc khơng làm ảnh hưởng đến global scope website điều tốt? Tại bạn không sử dụng thứ event load? Event có điểm bất lợi khơng? Bạn có biết cách thay khác, bạn sử dụng chúng? Giải thích ứng dụng đơn trang (single page app) để làm chúng thân thiện với việc SEO Mức độ trải nghiệm bạn Promise và/hoặc polyfills chúng? Những điểm lợi hại việc sử dụng Promise thay cho callback? Nêu vài ưu khuyết điểm việc viết code JavaScript ngôn ngữ mà dùng để biên dịch thành JavaScript Bạn sử dụng công cụ kỹ thuật để gỡ lỗi (debug) cho JavaScript? Bạn sử dụng cấu trúc để lặp xuyên suốt qua tất thuộc tính (property) object item array? Giải thích khác mutable object immutable object Nêu ví dụ cho immutable object JavaScript? Những ưu/khuyết điểm tính bất biến (immutability)? Làm để đạt tính bất biến code bạn? Giải thích khác hàm đồng (synchronous function) hàm không đồng (asynchronous function) Event loop gì? Sự khác biệt call stack task queue gì? Giải thích khác cách sử dụng foo sau đây: function foo() {} var foo = function() {} Sự khác biệt biến tạo việc sử dụng let, var const gì? Các câu hỏi Kiểm thử (Testing): Vài điểm lợi bất lợi việc kiểm thử code bạn gì? Bạn sử dụng công cụ để kiểm thử chức code bạn? Sự khác unit test functional/integration test gì? Mục đích cơng cụ kiểm tra code style (code style linting tool) gì? Các câu hỏi Hiệu suất (Performance): Bạn sử dụng công cụ để tìm lỗi hiệu suất code bạn? Chỉ vài cách mà bạn cải thiện hiệu suất cuộn trang (scrolling performance) website bạn? Giải thích khác layout, painting compositing Các câu hỏi Mạng (Network): Theo truyền thống, việc cung cấp tài nguyên trang web từ nhiều tên miền khác việc có lợi hơn? Hãy trình bày cách tồn diện q trình từ lúc bạn nhập vào URL trang web đến hồn thành việc tải thị hình bạn Những điểm khác Long-Polling, Websockets Server-Sent Events? Giải thích request header response header sau: Sự khác Expires, Date, Age If-Modified-… Do Not Track Cache-Control Transfer-Encoding ETag X-Frame-Options Các HTTP methods gì? Liệt kê tất HTTP methods mà bạn biết, giải thích chúng Các câu hỏi việc viết code: Câu hỏi: Giá trị foo gì? var foo = 10 + '20'; Câu hỏi: Đoạn code xuất gì? console.log(0.1 + 0.2 == 0.3); Câu hỏi: Bạn làm để hàm hoạt động? add(2, 5); // add(2)(5); // Câu hỏi: Giá trị trả từ dòng lệnh sau? "i'm a lasagna hog".split("").reverse().join(""); Câu hỏi: Giá trị window.foo gì? ( window.foo || ( window.foo = "bar" ) ); Câu hỏi: Kết lệnh alert gì? var foo = "Hello"; (function() { var bar = " World"; alert(foo + bar); })(); alert(foo + bar); Câu hỏi: Giá trị foo.length gì? var foo = []; foo.push(1); foo.push(2); Câu hỏi: Giá trị foo.x gì? var foo = {n: 1}; var bar = foo; foo.x = foo = {n: 2}; Câu hỏi: Những dòng code sau in gì? console.log('one'); setTimeout(function() { console.log('two'); }, 0); console.log('three'); ... job?) Mục đích câu hỏi để đánh giá lực kinh nghiệm làm việc bạn có phù hợp với vị trí ứng tuyển hay không Tip: Được đánh giá câu hỏi vấn thường gặp quan trọng, cách trả lời vấn câu hỏi nên chân... bạn biết, giải thích chúng Các câu hỏi việc viết code: Câu hỏi: Giá trị foo gì? var foo = 10 + '20'; Câu hỏi: Đoạn code xuất gì? console.log(0.1 + 0.2 == 0.3); Câu hỏi: Bạn làm để hàm hoạt động?... câu hỏi vấn tìm việc làm thường gặp khác Giới thiệu sơ lược thân bạn? (Could you briefly Introduce yourself?) Hầu hết nhà tuyển dụng dùng câu hỏi để bắt đầu câu chuyện với ứng viên Mục đích câu