Một vài câu hỏi về Javascript mà một Intern/ Fresher cần biết khi đi phỏng vấn

 

1. JAVASCRIPT LÀ GÌ?

Trả lời: Javascript là một ngôn ngữ lập trình kịch bản dựa vào đối tượng phát triển có sẵn hoặc tự định nghĩa ra, javascript được sử dụng rộng rãi trong các ứng dụng Website. Nó là một ngôn ngữ thông dịch.

2. CÁC KIỂU DỮ LIỆU TRONG JAVASCRIPT?

Trả lời: Có 6 kiểu đó là StringNumberObjectUndefinedBooleanArrayNull

3. HÀM DELETE CÓ CHỨC NĂNG GÌ?

Trả lời: Hàm delete loại bỏ một thuộc tính khỏi object; nếu không tồn tại tham chiếu tới thuộc tính, nó sẽ tự động giải phóng.

4. PHÂN BIỆT VAR, LET VÀ CONST?

Trả lời:
const dùng để khai báo một hằng số - là một giá trị không thay đổi được trong suốt quá trình chạy.
let tạo ra một biến chỉ có thể truy cập được trong block bao quanh nó
var - tạo ra một biến có phạm vi truy cập xuyên suốt function chứa nó.

5. STRICT MODE TRONG JAVASCRIPT LÀ GÌ?

Trả lời: Strict theo nghĩa tiếng Việt là "nghiêm khắc". Strict Mode là một quy mẫu nghiêm khắc trong Javascript. Nếu như việc viết code bình thường là Normal mode, thì Strict Mode sẽ có thêm các quy định khác so với Normal mode.

6. THIS TRONG JAVASCRIPT LÀ GÌ?

Trả lời: Từ khóa this dùng để chỉ đối tượng từ nơi nó được gọi.

7. KHÁC NHAU GIỮA UNDEFINED VÀ NULL TRONG JAVASCRIPT?

Trả lời: Khi tạo ra một biến mà không gán giá trị thì nó sẽ là undefined. Còn null là một object

8. == VÀ === KHÁC NHAU NHƯ THẾ NÀO?

Trả lời: Toán tử == kiểm tra tính bằng nhau, còn === kiểm tra cả tính bằng nhau và cả kiểu dữ liệu

9. THAY ĐỔI STYLE/CLASS CỦA ELEMENT?

Trả lời: Sử dụng thuộc tính document trong javascript. Có thể sử dụng với id, class hay bất cứ element nào.

10. TẠI SAO MATH.MAX() NHỎ HƠN MATH.MIN() ?

Trả lời: Khi chạy code Math.max() > Math.min(), giá trị trả về là False, nghe có vẻ không hợp lý. Tuy nhiên, nếu không có tham số nào được truyền vào, Math.min() trả về Infinity và Math.max() trả về -Infinity. Vậy nên Math.max() < Math.min().

11. CLOSURE TRONG JAVASCRIPT LÀ GÌ?

Trả lời: Closure là một hàm bên trong, truy cập đến các giá trị bên ngoài phạm vi của nó. Closure có thể truy cập vào các biến trong phạm vi của riêng nó (Variables in their own scope), trong hàm (Variables in the function’s scope), và biến toàn cục (Global variables).

12. HOISTING TRONG JAVASCRIPT LÀ GÌ?

Trả lời: Hoisting là hành động mặc định của Javascript, nó sẽ chuyển phần khai báo lên phía trên top Trong Javascript, một biến (variable) có thể được khai báo sau khi được sử dụng.

13. PHÂN BIỆT GIỮA FUNCTION DECLARATION VÀ FUNCTION EXPRESSION

Trả lời: Function declaration sẽ sử dụng từ khóa function rồi đến tên hàm. Còn Function expression sẽ được bắt đầu với từ khóa var, const, hoặc let.

14. HÀM ARRAY.SPLICE() VÀ HÀM ARRAY.SLICE() KHÁC NHAU NHƯ THẾ NÀO ?

Trả lời: Hàm Array.splice() sẽ thay thế một hoặc một số phần tử của mảng bằng một hoặc một số phần tử khác. Trong khi hàm Array.slice() sẽ trích xuất một số phần tử của mảng, vị trí bắt đầu và kết thúc việc trích xuất sẽ được xác định bởi tham số truyền vào hàm. Lưu ý hàm sẽ trích xuất không bao gồm phần tử end truyền vào.

15. SPEAD OPERATOR TRONG JAVASCRIPT ?

Trả lời: Spead operator là một biểu thức mở rộng giúp gộp các phần tử vào trong một cách viết ngắn gọn hơn. Cách viết này được thể hiện bằng dấu ...

16. ANONYMOUS FUNCTION LÀ GÌ ?

Trả lời: Là một hàm ẩn danh, không có tên gọi, thường được sử dụng khi xử lý các công việc có quy mô nhỏ, vì thế không cần thiết phải khởi tạo tên định danh cho hàm này. Giúp nó có tốc độ xử lý nhanh hơn hàm truyền thống phải có tên định danh.

17. TẠI SAO 0.1 + 0.2 KHÔNG BẰNG 0.3 ?

Trả lời: Vấn đề này liên quan đến việc Javascript lưu trữ dữ liệu float ở dạng nhị phân chính xác tới từng con số sau dấu phẩy. Hơn nữa máy tính không thể biểu diễn chính xác số thập phân, nên gây ra sai số kiểu này.
Giải pháp ở đây có thể sử dụng hàm toFixed() để đạt được kết quả đúng.

18. SỰ KHÁC NHAU GIỮA WINDOW.ONLOAD VÀ ONDOCUMENTREADY ?

Trả lời: Sự kiện window.onload có ý nghĩa rằng khi trình duyệt đã load xong mọi thứ (image, js, css) thì những đoạn code nằm bên trong đó mới được chạy. Với onDocumentReady, mọi thứ bên trong hàm này sẽ được load ngay khi DOM được load và trước khi toàn bộ nội dung bên ngoài được load.

19. KẾT QUẢ CỦA 1 + 2 + '3' ?

Trả lời: 33. 1 và 2 là kiểu integer, khi cộng lại sẽ được 3, sau đó sẽ nối với string '3' để được kết quả là 33.

20. PROMISE TRONG JAVASCRIPT LÀ GÌ ?

Trả lời: Promise là một cơ chế trong JavaScript giúp bạn thực thi các tác vụ bất đồng bộ mà không rơi vào callback hell hay pyramid of doom, là tình trạng các hàm callback lồng vào nhau ở quá nhiều tầng. Có 3 trạng thái: pendingfulfilledreject.

Những repo hữu ích: danieldev23/fullstack-interviews: Tuyển tập câu hỏi phỏng vấn fullstack (github.com)

Cre: Code Mely 

Đặng Quốc Huy

Tôi là Đặng Quốc Huy. Hiện tại, tôi là sinh viên Trường Đại học CNTT & Truyền thông Việt Hàn! Trong tương lai tôi muốn trở thành một lập trình viên giỏi. Đây là blog chia sẻ những gì mà tôi biết!