Bạn đã “xử gọn” 21 câu hỏi phỏng vấn JavaScript cho Beginners và đang nóng lòng thử sức với những câu hỏi khó hơn?
Vậy thì hãy cùng Got It đến với 18 câu hỏi phỏng vấn JavaScript dành cho Juniors ngay thôi! Mọi câu hỏi đều là song ngữ, đáp án sẽ được tổng hợp ở cuối để bạn kiểm tra câu trả lời của mình.
18 câu hỏi phỏng vấn JavaScript cho Juniors
Q1. What is the difference between Attributes and Property?
(Sự khác nhau giữa Attributes (Thuộc tính) và Property (Đặc tính) là gì?)
Q2. List out the different ways an HTML element can be accessed in a JavaScript code
(Liệt kê các cách khác nhau mà một phần tử HTML có thể được truy cập trong code JavaScript)
Q3. In how many ways a JavaScript code can be involved in an HTML file?
(Có bao nhiêu cách để thêm code JavaScript vào một tệp HTML?)
Q4. What are the ways to define a variable in JavaScript?
(Có những cách nào để xác định một biến trong JavaScript?)
Q5. What is a Typed language?
(Typed language là gì?)
Q6. What is the difference between Local storage & Session storage?
(Sự khác nhau giữa Local storage & Session storage là gì?)
Q7. What is the difference between the operators ‘==‘ & ‘===‘?
(Sự khác biệt giữa 2 toán tử ‘==‘ và ‘===‘ là gì?)
Q8. What is the difference between null & undefined?
(Sự khác nhau giữa null và undefined là gì?)
Q9. What is the difference between undeclared & undefined?
(Sự khác nhau giữa undeclared và undefined là gì?)
Q10. Name some of the JavaScript Frameworks
(Kể tên một số JavaScript Framework)
Q11. What is the difference between window & document in JavaScript?
(Điểm khác nhau giữa window và document trong JavaScript là gì?)
Q12. What is the difference between innerHTML & innerText?
(Sự khác nhau giữa innerHTML và innerText là gì?)
Q13. What is an event bubbling in JavaScript?
(Event bubbling trong JavaScript là gì?)
Q14. What is NaN in JavaScript?
(NaN trong JavaScript là gì?)
Q15. How do JavaScript primitive/object types passed in functions?
(Các kiểu dữ liệu primitive/object trong JavaScript được truyền vào các hàm như thế nào?)
Q16. How can you convert the string of any base to integer in JavaScript?
(Làm thế nào để chuyển đổi một chuỗi bất kỳ thành số nguyên trong JavaScript?)
Q17. What would be the result of 2+5+”3″?
(Kết quả của 2+5+”3″ là gì?)
Q18. What are Exports & Imports?
(Exports và Imports là gì?)
Đáp án chi tiết
Q1.
- Attributes (Thuộc tính) – cung cấp thêm thông tin chi tiết về một phần tử như id, type, value, v.v.
- Property (Đặc tính) – là giá trị được gán cho thuộc tính như type=”text”, value=’Name’, v.v.
Q2. Dưới đây là các cách một phần tử HTML có thể được truy cập trong code Javascript:
- getElementById(‘idname’): Lấy một phần tử theo tên ID của nó
- getElementsByClass(‘classname’): Lấy tất cả các phần tử có tên lớp cho sẵn
- getElementsByTagName(‘tagname’): Lấy tất cả các phần tử có tên thẻ cho sẵn
- querySelector(): Hàm này nhận bộ chọn kiểu CSS (CSS style selector) và trả về phần tử được chọn đầu tiên.
Q3. Có 3 cách để thêm code JavaScript vào tệp HTML:
- Inline
- Internal
- External
Hàm inline (hàm nội tuyến) là một hàm JavaScript được gán cho một biến được tạo trong runtime (môi trường thực thi). Bạn có thể phân biệt giữa hàm inline và hàm ẩn danh (anonymous function) vì một hàm inline được gán cho một biến và có thể dễ dàng sử dụng lại. Khi bạn cần JavaScript cho một tính năng nào đó, bạn có thể chọn cách tích hợp script trong trang bạn đang làm việc, hoặc có thể đặt nó trong một tệp riêng để gọi khi cần. Đây là sự khác biệt giữa internal script và external script.
Q4. Có 3 cách để xác định một biến trong JavaScript:
- Var – Câu lệnh các biến JavaScript được sử dụng để khai báo một biến và ta có thể khởi tạo giá trị của biến đó. Ví dụ: var a =10; Khai báo biến được xử lý trước khi code được thực thi.
- Const – Hàm const không được cho phép sửa đổi đối tượng (object) mà chúng được gọi. Khi một hàm được khai báo là const, nó có thể được gọi trên bất kỳ kiểu đối tượng nào.
- Let – Đây là tín hiệu cho thấy biến có thể được gán lại, chẳng hạn như bộ đếm trong vòng lặp hoặc hoán đổi giá trị trong thuật toán. Nó cũng báo hiệu rằng biến sẽ chỉ được sử dụng trong block mà nó được xác định.
Q5. Typed language là ngôn ngữ lập trình mà trong đó các giá trị được liên kết với các giá trị chứ không phải với các biến. Nó có hai loại:
- Dynamically Typed Language: biến có thể chứa nhiều kiểu; giống như trong JavaScript, một biến có thể nhận số, ký tự, etc.
- Statically Typed Language: biến chỉ có thể chứa một kiểu; giống như trong Java, một biến được khai báo là chuỗi chỉ có thể nhận một tập ký tự và không có gì khác.
Q6.
- Local storage – Dữ liệu không được gửi lại máy chủ cho mọi HTTP requets (HTML, hình ảnh, JavaScript, CSS, etc.) – giảm lưu lượng giữa máy khách và máy chủ. Nó sẽ lưu lại cho đến khi được xóa thủ công thông qua cài đặt hoặc chương trình.
- Session storage – Tương tự như local storage; sự khác biệt duy nhất là dữ liệu được lưu trữ trong local storage không có thời gian hết hạn, còn dữ liệu được lưu trữ trong session storage sẽ bị xóa khi phiên của trang kết thúc. Session storage sẽ rời khỏi khi trình duyệt đóng.
Q7.
Toán tử “==” chỉ kiểm tra giá trị và tự chuyển đổi nếu các giá trị có kiểu dữ liệu khác nhau trước khi so sánh.
Mặt khác, toán tử “===” kiểm tra cả giá trị và kiểu dữ liệu của giá trị. Nó không chuyển đổi các giá trị khi so sánh, nên nếu hai giá trị không cùng kiểu dữ liệu thì kết quả sẽ trả về là false.
Ví dụ: nếu bạn so sánh một số với một chuỗi có ký tự số, “==” cho phép điều đó, nhưng “===” không cho phép, bởi nó không chỉ kiểm tra giá trị mà còn kiểm tra kiểu của hai biến, nếu hai biến không cùng loại, “===” trả về false, trong khi “==” trả về true.
Q8. Undefined là một biến đã được khai báo nhưng chưa được gán giá trị. Null là một giá trị gán. Nó có thể được gán cho một biến dưới dạng đại diện không có giá trị. Ngoài ra, undefined và null là hai kiểu riêng biệt: undefined là một kiểu riêng biệt (kiểu dữ liệu không xác định) trong khi null là một đối tượng (object).
Q9.
- Biến undeclared là những biến không tồn tại trong chương trình và không được khai báo. Nếu chương trình cố gắng đọc giá trị của một biến chưa được khai báo, thì sẽ xảy ra runtime error.
- Biến undefined là những biến được khai báo trong chương trình nhưng chưa được cung cấp bất kỳ giá trị nào. Nếu chương trình cố gắng đọc giá trị của một biến không xác định, một giá trị không xác định sẽ được trả về.
Q10. JavaScript Framework là những application framework được viết bằng JavaScript. Chúng khác với thư viện JavaScript ở luồng điều khiển (control flow). Có rất nhiều JavaScript Framework có sẵn nhưng một số framework được sử dụng phổ biến nhất là:
- Angular
- React
- Vue
Q11.
Window | Document |
---|---|
Là một đối tượng toàn cục (global object) chứa các biến, hàm, lịch sử, vị trí. | Nằm dưới window và có thể được coi là thuộc tính của window. |
Q12.
- innerHTML – Sẽ xử lý một thẻ HTML nếu được tìm thấy trong một chuỗi
- innerText – Không xử lý thẻ HTML nếu được tìm thấy trong một chuỗi
Q13. Event bubbling là một cách lan truyền event trong HTML DOM API, khi một event xảy ra trong một phần tử bên trong một phần tử khác và cả hai phần tử đã đăng ký một xử lý cho event đó. Với bubbling, event đầu tiên được phần tử trong cùng nắm bắt và xử lý, sau đó được truyền đến các phần tử bên ngoài. Việc thực thi bắt đầu từ event đó và chuyển đến phần tử mẹ của nó. Sau đó, việc thực thi chuyển đến phần tử cha của nó và cứ tiếp tục như vậy cho đến phần tử body.
Q14. NaN là một dạng viết tắt của “Not a Number”. Vì NaN luôn so sánh không bằng với bất kỳ số nào, kể cả NaN, nó thường được sử dụng để chỉ ra điều kiện lỗi cho một hàm mà đáng ra phải trả về một số hợp lệ. Khi một chuỗi hoặc một cái gì đó khác đang được chuyển đổi thành một số và điều đó không thể được thực hiện, thì ta sẽ thấy NaN.
Q15. Một trong những điểm khác biệt giữa hai kiểu này là các kiểu dữ liệu nguyên thủy (Primitive Data Types) được chuyển theo giá trị (By Value) và các đối tượng (Objects) được chuyển theo tham chiếu (By Reference).
- By Value nghĩa là tạo BẢN SAO của bản gốc. Hãy hình dung nó giống như những cặp song sinh: họ được sinh ra giống hệt nhau, nhưng người anh/chị không bị mất chân, trong khi người em bị mất một chân trong chiến tranh.
- By Reference nghĩa là tạo ALIAS cho bản gốc. Nó giống như việc mẹ gọi bạn là “Pumpkin Pie” mặc dù tên của bạn là Margaret, điều này không đột nhiên sinh ra một bản sao của bạn. Bạn vẫn là một, nhưng bạn có thể được gọi bằng hai cái tên rất khác nhau này.
Q16. Hàm parseInt() được sử dụng để chuyển đổi số giữa các base khác nhau. Nó nhận chuỗi được chuyển đổi làm tham số đầu tiên và tham số thứ hai là base của chuỗi đã cho. Ví dụ:
Q17. Vì 2 và 5 là số nguyên nên chúng sẽ được cộng theo dạng số. Vì “3” là một chuỗi nên việc nối bằng hàm concat (concatenation). Vì vậy, kết quả sẽ là 73. Dấu “” tạo ra tất cả sự khác biệt ở đây và khiến số 3 được coi là một chuỗi chứ không phải một số.
Q18. Exports và Imports giúp ta viết modular JavaScript code. Dùng Imports và Exports cho phép ta chia code thành nhiều tệp khác nhau. Ví dụ:
Got It Vietnam, theo Edureka!