cau-hoi-phong-van-javascript

Tổng hợp câu hỏi phỏng vấn Javascript thường gặp nhất

Chia sẻ kinh nghiệm
Spread the love

Javascript, HTML, CSS là bộ 3 ngôn ngữ đỉnh cao của lập trình web. Tuy nhiên ngôn ngữ Javascript lại có đặc thù khá linh động nên khiến nhiều ứng viên gặp khó khăn trong quá trình phỏng vấn. Bài viết dưới đây của topviecit.vn là tổng hợp bộ câu hỏi phỏng vấn javascript thường gặp nhất, đừng bỏ qua nhé!

Tổng hợp bộ câu hỏi phỏng vấn Javascript thường gặp nhất

Nếu bạn đang gặp khó khăn trong việc chuẩn bị kiến thức cho kỳ thi phỏng vấn Javascript sắp tới, vậy thì hãy tham khảo ngay bộ câu hỏi thường gặp nhất dưới đây nhé!

Phân biệt giữa Null và Undefined

  • Undefined dịch ra là không xác định. Trong ngôn ngữ javascript, nếu bạn khai báo một biến nhưng không gán giá trị cho nó, giá trị của biến nó là không xác định hay undefined.
  • Null là một loại object như các loại object ‘string’, ‘number’,…

1 typeof undefined   //  undefined

2 typeof null  //  object

Ta thấy undefined có kiểu giá trị là undefined, trong khi null lại là 1 object. Đây chính là một lỗi trong JavaScript khi ta để kiểu của null là đối tượng, thực chất nó phải là null.

1 null === undefined // false

2 null == undefined // true

Hệ thống câu hỏi phỏng vấn Javascript hay gặp
Hệ thống câu hỏi phỏng vấn Javascript hay gặp 

Tác dụng của “This” trong javascript là gì?

Đây là câu hỏi phỏng vấn Javascript thường gặp nhất mà bạn nên ghi nhớ lại. Thực tế, từ khóa  “this” trong javascript sẽ tham chiếu hướng tới đối tượng mà nó thuộc về, đồng nghĩa “this” sẽ có giá trị khác nhau tùy thuộc theo nơi mà nó được dùng.

  • Khi ở trong 1 method, “this” sẽ tham chiếu đến đối tượng là chủ. Cụ thể đó là:

1  var company = {

2  name: “PhongvanIT”,

3  showName: function() {

4  alert(this.name);

5  }

6  }

7 company.showName();

8 // Kết quả: “PhongvanIT”​

  • Khi ở trong 1 function, “this” sẽ tham chiếu đến đối tượng toàn cục (global object). Trong web, “this” sẽ tham chiếu đến đối tượng là biến window).

1  var name = “GlobalObject_PhongvanIT”;

2  var showName = function(){

3  alert(this.name);

4  }

5  var company = {

6  name: “PhongvanIT”,

7  showName: function() {

8  alert(this.name);

9   }

10 }

11  company.showName();

12  // Kết quả: “PhongvanIT”​

13  showName(); // hoặc window.showName();

14  // Kết quả: “GlobalObject_PhongvanIT”​

Điểm khác biệt giữa var và let là gì?

Sự khác khác biệt giữa var và let là ở mức độ phạm vi. Nếu Var là phạm vi function(function-scoped) thì let là phạm vi blocked (block-scoped). Cụ thể là:

1  function doStuff() {

2  // cả a và b sẽ có sẵn cho hàm này doStuff(), nhưng không có bên ngoài

3  let a = 5;

4   var b = 5;

5   console.log(a + b); // 10

6   }

7   doStuff(); // 10;

8   console.log(a); // ReferenceError

9   console.log(b); // ReferenceError

10 function doMoreStuff() {

11 if (2 + 2 === 4) {

12 //  Ở đây, a sẽ có sẵn cho toàn bộ hàm

13 var a = 5;

14 // Nhưng b sẽ chỉ khả dụng trong khối này

15 let b = 5;

16  }

17  console.log(a); // 5

18  console.log(b); // ReferenceError

19  }

20  doMoreStuff();

21  // 5

22 // ReferenceError

22  for (let i = 0; i < 5; i++) {

24  // i sẽ tăng lên sau mỗi lần lặp

25  // và setTimeout sẽ nhận được i mới mỗi lần lặp

26 setTimeout(() => console.log(i), 100);

27  }

28  /*

29  1

30  2

31  3

32  4

33  */

34  for (var j = 0; j < 5; j++) {

35  // j nằm ở phạm vi function 

36  // do đó nó ko thay đổi sau mỗi lần lặp  và  setTimeout trả ra kết quả giống nhau sau mỗi lần lặp

37  setTimeout(() => console.log(j), 100);

38  }

39  */

40  5

42  5

42  5

43  5

44  5

45  */

Điểm khác biệt giữa == và === là gì ?

“==” là so sánh giá trị. Còn “===” là cả so sánh giá trị và kiểu dữ liệu.

Cụ thể đó là:

1  1 == ‘1’; // true

2  1 == [1]; // true

3  1 == true; // true

4  0 == ”; // true

5  0 == ‘0’; // true

6  0 == false; // true

Trong ngôn ngữ Javascript ta không nên sử dụng toán tử ==, trừ trường hợp cần  so sánh với null hoặc undefined. Và a == null sẽ trả về true khi  a là null hoặc undefined.

1  var a = null;

2  console.log(a == null); // true

3  console.log(a == undefined); // true

Trong ngôn ngữ Javascript ta không nên sử dụng toán tử “==”
Trong ngôn ngữ Javascript ta không nên sử dụng toán tử “==”

Closure trong javascript là gì? Cho ví dụ minh họa

Closure trong javascript là gì là câu hỏi phỏng vấn Javascript hay xuất hiện trong bài thi.

Closure trong ngôn ngữ avascript là một hàm tham chiếu các biến có phạm vi vượt ra khỏi phạm vị hàm đó. Đồng nghĩa hàm này cho phép người dùng truy cập các biến hoặc tham số ngoài phạm vi hàm đó.

Nếu muốn sử dụng closure, bạn bắt buộc phải khai báo 1 function bên trong 1 function khác nữa và tiến hành return nó ra.

Ví dụ minh họa 1 là:

1  function phongVanIT() {

2  let name = ‘PhongvanIT’;

3  function callName() {

4  console.log(name);

5  }

6  return callName;

7 }

8 var callFunc = phongVanIT();

9 callFunc();

10// Kết quả: “PhongvanIT”

Ví dụ minh họa 2:

1 function phongVanIT(name) {

2 return function(action){

3 return action + ‘ ‘ + name;

4 }

5 }

6 var hello = phongVanIT(‘PhongvanIT.com’);

7 var love = phongVanIT(‘PhongvanIT.com’);

8 console.log(hello(‘Hello’)); // Kết quả: “Hello PhongvanIT.com”

9 console.log(love(‘Love’)); // Kết quả: “Love PhongvanIT.com”

Danh sách các kiểu dữ liệu nguyên thuỷ trong ngôn ngữ javascript là gì?

Đây cũng là một câu hỏi phỏng vấn Javascript hay xuất hiện trong đề thi. Kiểu dữ liệu nguyên thuỷ trong ngôn ngữ javascript không phải là một đối tượng mà là một kiểu dữ liệu nên nó không tồn tại phương thức trong đó. Có 7 kiểu dữ liệu nguyên thủy đó là: Boolean, Null, Undefined, Number, BigInt, String và Symbol.

Có 7 kiểu dữ liệu nguyên thủy trong Javascript
Có 7 kiểu dữ liệu nguyên thủy trong Javascript

Trên đây chúng tôi đã tổng hợp cho bạn một số câu hỏi phỏng vấn Javascript thường gặp nhất. Hy vọng chúng hữu ích với bạn, chúc bạn thành công!

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *