18 câu hỏi phỏng vấn JavaScript cho Juniors (có đáp án)

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

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ì?)

Sự khác biệt giữa 2 toán tử ‘==‘ và ‘===‘ - 18 câu hỏi phỏng vấn JavaScript cho Juniors

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ì?)

Sự khác nhau giữa innerHTML và innerText - 18 câu hỏi phỏng vấn JavaScript cho Juniors

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ì?)

Kết quả của 2+5+”3″ - 18 câu hỏi phỏng vấn JavaScript cho Juniors

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à:

JavaScript Frameworks - JavaScript interview questions
  • Angular
  • React
  • Vue

Q11.

WindowDocument
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ụ:

Hàm parseInt() - 18 câu hỏi phỏng vấn JavaScript

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ụ: 

Imports và Exports - 18 câu hỏi phỏng vấn JavaScript

Got It Vietnam, theo Edureka!

Nếu bạn quan tâm, hãy xem các vị trí đang tuyển dụng của Got It tại: bit.ly/gotit-hanoi và đọc thêm về quy trình tuyển dụng tại đây.

Thao Hoang
Thao Hoang
November 25, 2020
1
Share this post to:
Tags:
0 Comments
Inline Feedbacks
View all comments
Các bài viết liên quan
10 tips tự học Python nhanh và hiệu quả nhất

10 tips tự học Python nhanh và hiệu quả nhất

Nếu bạn đang không biết con đường tự học Python của mình nên diễn ra thế nào, đây chính là bài viết cho bạn. Để có thể trở thành một lập trình viên thành công, tự học chính là một chiếc chìa khoá vô cùng quan trọng. Thế giới công nghệ luôn không ngừng thay […]
Học lập trình Python hay JavaScript đầu tiên?

Học lập trình Python hay JavaScript đầu tiên?

Python và JavaScript là 02 trong số những ngôn ngữ lập trình phổ biến nhất hiện nay. Chúng đều mở ra rất nhiều cơ hội việc làm dành cho các lập trình viên, và là những lựa chọn tốt để bắt đầu sự nghiệp lập trình.  Mặc dù cả hai đều là ngôn ngữ lập […]
21 câu hỏi phỏng vấn JavaScript cho Beginners (có đáp án)

21 câu hỏi phỏng vấn JavaScript cho Beginners (có đáp án)

Có bao giờ bạn tự hỏi, liệu trong phỏng vấn JavaScript, người ta sẽ hỏi bạn điều gì? Cùng Got It thử sức với top 21 câu hỏi phỏng vấn JavaScript được chọn lọc bởi trang web Edureka! Đây là những câu hỏi cơ bản, phù hợp cho các bạn từ fresher đến junior, vì […]
8 cách học JavaScript nhanh nhất – Phần 2

8 cách học JavaScript nhanh nhất – Phần 2

Tiếp nối 8 cách học JavaScriot nhanh nhất – Phần 1, bài viết hôm nay sẽ đi sâu vào 7 cách học JavaScript tiếp theo với những tài liệu cụ thể được gợi ý cho bạn. Đặc biệt, các tài liệu đều phần lớn được sử dụng miễn phí, vậy nên bạn hoàn toàn có […]
8 cách học JavaScript nhanh nhất – Phần 1

8 cách học JavaScript nhanh nhất – Phần 1

Theo khảo sát của Stack Overflow, không có gì bất ngờ khi đến tận 2020, JavaScript vẫn đang giữ vững ngôi vị ngôn ngữ lập trình nổi tiếng nhất thế giới trong suốt 8 năm trở lại đây. Vậy JavaScript là gì mà lại có được sự phổ biến đáng gờm đến thế? Và là […]
Học JavaScript cùng 5 kênh Youtube tốt nhất (2020)

Học JavaScript cùng 5 kênh Youtube tốt nhất (2020)

Học JavaScript sẽ trở nên rất thú vị, với 5 kênh Youtube dạy lập trình dưới đây! Trong bài viết này, Got It sẽ giới thiệu những kênh Youtube cùng videos cực kỳ chất lượng giúp bạn nâng cao kỹ năng lập trình JavaScript. Mỗi kênh Youtube lại có những đặc điểm khác nhau nên […]