Câu hỏi phỏng vấn JavaScript

Câu hỏi phỏng vấn JavaScript

Rate this post

JavaScript là ngôn ngữ lập trình phổ biến của web. Ngôn ngữ lập trình thông dịch cấp cao tuân theo cách tiếp cận đa mô hình. Như vậy, nó có một số đặc điểm của lập trình chức năng.

Nếu bạn xem qua StackOverflow Developer Survey 2020, bạn sẽ thấy rằng JavaScript đứng đầu danh sách ngôn ngữ lập trình được ưa thích nhất trong năm thứ 6 liên tiếp.

Gần 70% trong số tất cả những người trả lời khảo sát Stackoverflow nói rằng họ đã sử dụng JS cho các công việc phát triển hàng ngày của họ. Do đó, đi theo con đường sự nghiệp trong phát triển JavaScript là rất hấp dẫn.

Các bài viết liên quan:

Câu hỏi và câu trả lời phỏng vấn JavaScript hàng đầu

Ở đây chúng tôi đã tổng hợp một danh sách các câu hỏi phỏng vấn Javascript quan trọng để giúp bạn nắm bắt các câu hỏi phỏng vấn JS sắp tới. Các câu hỏi được chia nhỏ hơn ở mức độ cơ bản và mức độ nâng cao.

Câu hỏi phỏng vấn Javascript cơ bản

Câu hỏi: Bạn hiểu gì về JavaScript?

Trả lời: JavaScript là ngôn ngữ kịch bản web phổ biến nhất, được sử dụng để phát triển cả phía máy khách và phía máy chủ. Hỗ trợ khả năng lập trình hướng đối tượng, mã JavaScript có thể được chèn vào các trang HTML mà trình duyệt web có thể hiểu và thực thi.

Câu hỏi: JavaScript khác với Java như thế nào?

Trả lời: Java là một ngôn ngữ lập trình, trong khi JavaScript về bản chất là một ngôn ngữ kịch bản. Các nhà phát triển sử dụng Java để xây dựng các ứng dụng có thể chạy trong máy ảo, hệ điều hành hoặc bên trong trình duyệt. Ngược lại, mã JS chỉ chạy bên trong trình duyệt.

Tuy nhiên, các ứng dụng máy tính để bàn độc lập có thể được xây dựng bằng JavaScript bằng cách sử dụng Electron và Node.js. Một sự khác biệt quan trọng khác giữa mã Java và mã JS là trong khi mã trước yêu cầu biên dịch, mã sau có sẵn ở định dạng văn bản.

Câu hỏi: Vui lòng giải thích các kiểu dữ liệu JavaScript khác nhau?

Trả lời: Có tổng cộng 7 kiểu dữ liệu cơ bản được hỗ trợ bởi JavaScript. Mỗi người trong số họ được tóm tắt như sau:

  • Boolean – Đại diện cho các giá trị đúng và sai.
  • Null – Đại diện cho loại giá trị trống, không có gì và không xác định
  • Number – Đại diện cho cả giá trị số nguyên và dấu phẩy động.
  • Object – Được sử dụng để lưu trữ các bộ sưu tập dữ liệu hoặc các thực thể phức tạp hơn
  • String – Đại diện cho các giá trị một ký tự, nhiều ký tự và chữ và số.
  • Symbol – Được sử dụng để tạo mã nhận dạng duy nhất cho các đối tượng
  • Undefined – Đại diện cho giá trị không được chỉ định. Nếu một biến chỉ được khai báo và không được gán trong JS, thì nó đại diện cho kiểu dữ liệu không xác định.

Câu hỏi: Bạn có thể liệt kê các tính năng khác nhau của JavaScript không?

Trả lời: Một số tính năng quan trọng của JavaScript là:

  • Một ngôn ngữ lập trình nhẹ được giải thích với một số khả năng hướng đối tượng.
  • Một ngôn ngữ kịch bản mở, đa nền tảng
  • Bổ sung và tích hợp với ngôn ngữ lập trình Java cũng như các công nghệ phụ trợ khác.
  • Được thiết kế đặc biệt để tạo các ứng dụng tập trung vào mạng

Câu hỏi: Bạn có thể phân biệt giữa let và var không?

Trả lời: Cả let và var đều được sử dụng để khai báo biến và phương thức trong JavaScript. Tuy nhiên, sự khác biệt quan trọng nhất giữa hai từ khóa JS là trong khi từ khóa var là phạm vi chức năng, từ khóa let là phạm vi khối.

Câu hỏi: Các ký tự thoát trong JavaScript là gì?

Trả lời: Trong JavaScript, chúng tôi sử dụng các ký tự thoát, thường là dấu gạch chéo ngược (\ \) khi làm việc với các ký tự đặc biệt, chẳng hạn như dấu và (&), dấu nháy đơn (‘), dấu ngoặc kép (“ “) và dấu nháy đơn (‘ ‘). Bất cứ điều gì được bao quanh trong lối thoát, các ký tự sẽ được hiển thị bởi JavaScript.

Sáu ký tự thoát bổ sung cũng có sẵn trong JavaScript:

  • \ b – Backspace
  • \ f – Nguồn cấp dữ liệu biểu mẫu
  • \ n – Dòng mới
  • \ r – Trả hàng
  • \ t – Trình lập bảng ngang
  • \ v – Trình lập bảng dọc

Những điều này dù sao cũng không được thực thi trong mã HTML hoặc JS. Chúng ban đầu được thiết kế để điều khiển máy fax, máy viễn thông và máy đánh chữ.

Câu hỏi: Vui lòng mô tả những ưu điểm quan trọng nhất của việc sử dụng JavaScript?

Trả lời: Có một số lợi thế khi sử dụng JavaScript. Đáng chú ý nhất trong số chúng được liệt kê như sau:

  • Tương tác nâng cao – JavaScript cho phép tạo các giao diện phản ứng khi người dùng kích hoạt chúng thông qua bàn phím hoặc chỉ di chuyển con trỏ qua cùng một giao diện.
  • Phản hồi ngay lập tức – Khách truy cập không cần đợi tải lại trang để xem liệu họ có quên nhập một số chi tiết quan trọng hay không.
  • Tương tác máy chủ thấp – JS cho phép xác thực đầu vào của người dùng trước khi gửi trang web đến máy chủ. Nó có nghĩa là lưu lượng truy cập máy chủ ít hơn và do đó, tải ít hơn trên máy chủ.
  • Giao diện phong phú – JS có các mục như thành phần kéo và thả và thanh trượt để hiển thị giao diện phong phú hơn cho khách truy cập trang web.

Câu hỏi: Bạn có thể kể tên một số phương thức tích hợp sẵn trong JavaScript không?

Trả lời: Sau đây là một số phương thức có sẵn trong JavaScript:

  • anchor () – Tạo một anchor HTML để được sử dụng làm mục tiêu siêu văn bản
  • ceil () – trả về số nguyên nhỏ nhất lớn hơn hoặc bằng số đã cho
  • concat () – Kết hợp hai chuỗi và trả về chuỗi mới hơn
  • constructor () – Trả về hàm đã tạo phiên bản tương ứng của đối tượng
  • Date () – Trả về ngày và giờ hiện tại
  • Date.parse () – Phân tích cú pháp biểu diễn chuỗi của ngày và giờ, sau đó trả về biểu diễn mili giây bên trong cho cùng một
  • execute () – Tìm kiếm kết quả phù hợp trong tham số chuỗi
  • filter () – Tạo một mảng mới với tất cả các phần tử của mảng mà hàm lọc trả về true
  • font color () – Hiển thị một chuỗi theo màu được chỉ định
  • link () – Tạo một liên kết siêu văn bản HTML yêu cầu một URL khác
  • localeCompare () – Trả về một số cho biết một chuỗi tham chiếu đến trước, sau hay giống với chuỗi đã cho theo thứ tự sắp xếp
  • match () – Được sử dụng để so khớp một biểu thức chính quy với một chuỗi
  • pop () – Loại bỏ và trả về phần tử cuối cùng từ một mảng
  • reduce() – Áp dụng đồng thời một hàm cho hai giá trị của mảng để giảm chúng xuống một giá trị duy nhất
  • round () – Làm tròn giá trị của số đã cho thành số nguyên gần nhất và trả về giá trị tương tự
  • Slice () – Trích xuất một phần nhất định của một chuỗi và trả về chuỗi còn lại
  • some () – trả về true nếu ít nhất một phần tử của mảng thỏa mãn hàm kiểm tra được cung cấp
  • toLocaleString () – Trả về giá trị chuỗi của số hiện tại ở định dạng phụ thuộc vào cài đặt ngôn ngữ của trình duyệt
  • sup () – Hiển thị một chuỗi dưới dạng chỉ số trên
  • toSource () – Trả về một chuỗi chứa nguồn của đối tượng Boolean
  • toUpperCase () – Chuyển văn bản thành chữ hoa
  • valueOf () – Trả về giá trị ban đầu của đối tượng được chỉ định

Câu hỏi: Bạn có thể cho chúng tôi biết về các loại trình tạo lỗi khác nhau được hỗ trợ bởi JavaScript không?

Trả lời: Hàm tạo Lỗi chịu trách nhiệm tạo một đối tượng lỗi. Các phiên bản của các đối tượng lỗi được ném ra khi lỗi thời gian chạy xảy ra. Hơn nữa, đối tượng Lỗi cũng có thể được sử dụng làm đối tượng cơ sở cho các trường hợp ngoại lệ do người dùng xác định.

Khác với hàm tạo lỗi chung, JS cung cấp hỗ trợ cho 7 trình tạo lỗi đó là:

  • EvalError – Tạo một trường hợp lỗi liên quan đến hàm toàn cầu eval ().
  • InternalError – Tạo trường hợp lỗi liên quan đến lỗi nội bộ trong công cụ JS.
  • RangeError – Tạo trường hợp lỗi liên quan đến biến số hoặc tham số nằm ngoài phạm vi hợp lệ của nó.
  • ReferenceError – Tạo một trường hợp lỗi liên quan đến việc hủy tham chiếu một tham chiếu không hợp lệ.
  • SyntaxError – Tạo một trường hợp lỗi liên quan đến lỗi cú pháp xảy ra khi phân tích cú pháp mã trong eval ().
  • TypeError – Tạo một trường hợp lỗi liên quan đến một tham số hoặc biến không thuộc loại hợp lệ.
  • URIError – Tạo trường hợp lỗi liên quan đến thời điểm các tham số không hợp lệ được chuyển đến URI giải mã () hoặc encodeURI ()

Câu hỏi: Giải thích việc sử dụng trình gỡ lỗi trong JavaScript?

Trả lời: Tất cả các trình duyệt hiện đại (Mozilla Firefox, Safari, Google Chrome, v.v.) đều có trình gỡ lỗi tích hợp sẵn có thể được gọi bằng cách nhấn phím F12. Bạn cần chọn tab Console để xem kết quả. Tại đây bạn có thể đặt các điểm ngắt cũng như xem giá trị của các biến.

JavaScript cũng có từ khóa trình gỡ lỗi sao chép chức năng sử dụng các điểm ngắt bằng trình gỡ lỗi. Tuy nhiên, nó chỉ hoạt động khi tùy chọn gỡ lỗi được bật trong cài đặt trình duyệt web.

Câu hỏi: Các loại giá trị Tên lỗi khác nhau trong JavaScript là gì?

Trả lời: Có 6 loại giá trị Tên lỗi. Mỗi một trong số chúng được giải thích ngắn gọn như sau:

  • Lỗi Eval – Xử lý khi gặp lỗi trong eval () (Các bản phát hành JS mới hơn không có lỗi này)
  • Lỗi phạm vi – Được tạo khi một số bên ngoài phạm vi được chỉ định được sử dụng
  • Lỗi Tham chiếu – Nó có tác dụng khi một biến chưa được khai báo được sử dụng.
  • Lỗi cú pháp – Khi cú pháp không chính xác được sử dụng, chúng tôi gặp lỗi này
  • Lỗi loại – Lỗi này xảy ra khi một giá trị nằm ngoài phạm vi kiểu dữ liệu được cố gắng sử dụng.
  • Lỗi URI – Được tạo ra do việc sử dụng các ký tự bất hợp pháp

Câu hỏi phỏng vấn Javascript nâng cao

Câu hỏi: Vui lòng giải thích Hàm tự gọi và cú pháp của nó.

Trả lời: Các hàm được gọi tự động được gọi là Hàm tự gọi. Chúng còn được gọi là Biểu thức hàm được gọi ngay lập tức và Hàm ẩn danh tự thực thi. Cú pháp chung của một Hàm tự gọi là:

(some_function () {
return () 
}) ();

Thông thường, một hàm được xác định và sau đó được gọi. Tuy nhiên, nếu có nhu cầu tự động thực thi một hàm tại nơi nó được đưa ra và không được gọi lại, thì các hàm ẩn danh có thể được sử dụng. Các hàm như vậy không có tên, và do đó có tên.

Câu hỏi: Giải thích sự khác nhau giữa khai báo hàm và biểu thức hàm?

Trả lời: Sau đây là sự khác biệt giữa khai báo hàm và biểu thức hàm:

Định nghĩa – Một hàm được khai báo như một câu lệnh riêng biệt trong luồng mã chính được gọi là khai báo hàm. Khi một hàm được tạo bên trong một biểu thức hoặc một cấu trúc cú pháp khác, nó được gọi là một biểu thức hàm.

  • Chế độ nghiêm ngặt – Khi khai báo hàm nằm trong một khối mã ở chế độ Nghiêm ngặt, nó sẽ hiển thị ở mọi nơi bên trong khối đó nhưng không hiển thị bên ngoài khối đó. Đây không phải là trường hợp của một biểu thức hàm.
  • Thời gian sử dụng – Một biểu thức hàm được tạo ra khi việc thực thi đạt đến nó. Biểu thức hàm chỉ có thể sử dụng được từ thời điểm đó trở đi. Mặt khác, một khai báo hàm có thể được gọi trước khi nó được định nghĩa.
  • Khi nào sử dụng – Khai báo hàm mang lại khả năng đọc tốt hơn và mang lại nhiều tự do hơn trong việc tổ chức mã. Biểu thức hàm thường bị hạn chế sử dụng khi cần khai báo điều kiện.

Câu hỏi: Sự khác biệt giữa thuộc tính và thuộc tính?

Trả lời: Các đối tượng JS DOM có các thuộc tính giống như các biến thể hiện cho các phần tử cụ thể. Thuộc tính có thể có nhiều kiểu dữ liệu khác nhau. Các thuộc tính có thể truy cập được bằng cách tương tác với đối tượng trong Vanilla JS hoặc sử dụng phương thức prop () của jQuery.

Thay vì trong DOM, các thuộc tính nằm trong HTML. Chúng tương tự như thuộc tính nhưng không có khả năng bằng. Bạn nên làm việc với các thuộc tính hơn là các thuộc tính nếu cái cũ có sẵn. Không giống như thuộc tính, thuộc tính thuộc kiểu dữ liệu chuỗi.

Câu hỏi: Các cách khác nhau để nhúng mã JavaScript vào tệp HTML là gì?

Trả lời: Có 4 cách để nhúng mã JS vào tài liệu HTML:

  • Thêm nó giữa các thẻ Từ một tệp bên ngoài được chỉ định bởi thuộc tính src của thẻ. Các trình duyệt cũ coi mã JS này như một nhận xét HTML dài.
  • Thông thường, mã JS được ẩn khỏi các trình duyệt cũ để giải quyết các vấn đề về khả năng tương thích và giao diện người dùng. Điều thú vị là các trình duyệt hỗ trợ JavaScript sẽ nhận xét dưới dạng nhận xét một dòng.

Câu hỏi: Bạn hiểu gì về cookie? Bạn sẽ tạo, đọc và xóa cookie bằng JavaScript như thế nào?

Trả lời: Cookie chỉ đơn giản là dữ liệu, thường là dữ liệu nhỏ, được gửi từ một trang web và được lưu trữ trên máy tính của người dùng bằng trình duyệt web được sử dụng để truy cập trang web. Đó là một cách đáng tin cậy để các trang web ghi nhớ thông tin trạng thái và ghi lại hoạt động duyệt web của người dùng.

Cách cơ bản nhất để tạo cookie bằng JS là gán một giá trị chuỗi cho tài liệu. Đối tượng cookie. Cú pháp chung là:

document.cookie = “key1 = value1; key2 = value2; … ; keyN= valueN; expires = date”;

  • Đọc Cookie:

Đọc cookie bằng JS cũng đơn giản như tạo cookie. Như giá trị của tài liệu. Đối tượng cookie là cookie, sử dụng chuỗi này bất cứ khi nào bạn muốn truy cập cookie.

Chuỗi document.cookie giữ một danh sách các cặp name = value, trong đó dấu chấm phẩy phân tách từng cặp. Tên đại diện cho tên của cookie và giá trị đại diện cho giá trị chuỗi của cookie tương ứng. Để ngắt chuỗi thành khóa và giá trị, bạn có thể sử dụng phương thức split ().

  • Xóa Cookie:

Xóa cookie bằng JavaScript, chỉ cần đặt ngày hết hạn (hết hạn) thành một thời điểm đã qua. Một số trình duyệt web không cho phép bạn xóa cookie trừ khi bạn không chỉ định đường dẫn của cookie. Do đó, việc xác định đường dẫn cookie là rất quan trọng để đảm bảo rằng cookie phù hợp sẽ bị xóa.

Câu hỏi: Đầu ra của mã JS dưới đây sẽ là gì? Vui lòng giải thích.

var y = 1;
if (function F(){})
{
y += typeof F;
}
console.log(y);

Trả lời: Đầu ra của mã JavaScript nói trên sẽ được xác định 1. Câu lệnh điều kiện if trong mã đánh giá bằng cách sử dụng eval. Do đó, eval (hàm F () {}) sẽ trả về hàm F () {}.

Bên trong câu lệnh if, việc thực thi typeof F trả về không xác định bởi vì nếu mã câu lệnh thực thi tại thời điểm chạy, câu lệnh bên trong điều kiện sẽ được đánh giá.

Câu hỏi: Bạn hiểu gì về Closures trong JavaScript?

Trả lời: Closures cung cấp mã viết tốt hơn, ngắn gọn, sáng tạo và biểu đạt cho các nhà phát triển và lập trình JavaScript. Nói về mặt kỹ thuật, các bao đóng là sự kết hợp giữa môi trường từ vựng và chức năng.

Nói cách khác, bao đóng là một biến được khai báo cục bộ có liên quan đến một hàm và nằm trong bộ nhớ khi hàm liên quan đã trả về. Bao đóng chứa tất cả các biến cục bộ nằm trong phạm vi tại thời điểm tạo bao đóng.

Đoạn mã sau minh họa bằng cách sử dụng một hàm bình thường trong JavaScript:

function greet(message) {
console.log(message);
}
function greeter(name, age) {
return name + " says Hey!! He is " + age + " years old";
}
var message = greeter("Akhil", 26);
greet(message);

Hàm nói trên có thể được biểu diễn theo cách tốt hơn bằng cách sử dụng các bao đóng. Điều này được thể hiện trong đoạn mã sau:

function greeter(name, age) {
var message = name + " says Hey!! He is " + age + " years old";
return function greet() {
console.log(message);
};
}

// Tạo bao đóng
var AkhilGreeter = greeter("Akhil", 26);
// Sử dụng bao đóng
AkhilGreeter();

Câu hỏi: Vui lòng giải thích NEGATIVE_INFINITY trong JavaScript.

Trả lời: NEGATIVE_INFINITY là một thuộc tính tĩnh trong JS cho kết quả khi một số âm chia cho 0. Các đặc điểm quan trọng của nó là:

Không cần tạo nhiều đối tượng để truy cập NEGATIVE_INFINITY

Giá trị của thuộc tính NEGATIVE_INFINITY giống với giá trị âm của thuộc tính vô cực của đối tượng toàn cục.

Câu hỏi: Có cách nào ngắn gọn và súc tích để viết biểu thức hàm trong JS không?

Trả lời: JavaScript cung cấp một cách ngắn gọn và súc tích để viết các biểu thức hàm được gọi là hàm mũi tên. Cách viết biểu thức hàm này thường được ưu tiên cho các hàm không phải là phương thức. Cú pháp chung của một hàm mũi tên là:

const function_name = ()=>{}

Không thể sử dụng các hàm mũi tên làm hàm tạo. Hơn nữa, họ không cung cấp hỗ trợ cho các đối số, new.target, super và this.

Câu hỏi: Làm cách nào bạn có thể nhập tất cả các bản xuất của một tệp dưới dạng một đối tượng trong JavaScript?

Trả lời: Để nhập tất cả các thành viên đã xuất của một đối tượng, người ta có thể sử dụng:

nhập * làm tên đối tượng từ ‘./file.js.’

Có thể dễ dàng truy cập các phương thức hoặc biến đã xuất bằng cách sử dụng toán tử dấu chấm (.).

Câu hỏi: Bạn sẽ làm trống một mảng trong JavaScript như thế nào?

Trả lời: Có nhiều cách để làm trống một mảng trong JavaScript. Bốn trong số những điều quan trọng nhất là:

  • Bằng cách gán một mảng trống:

var array1 = [1, 22, 24, 46];

array1 = [];

  • Bằng cách gán độ dài mảng cho 0:

var array1 = [1, 22, 24, 46];

array1.length=0;

  • Bằng cách đánh dấu các phần tử của mảng:

var array1 = [1, 22, 24, 46];

while(array1.length > 0) {

array1.pop();

}

  • Bằng cách sử dụng hàm mảng mối nối:

var array1 = [1, 22, 24, 46];

array1.splice(0, array1.length)

Câu hỏi: Ý của bạn là gì về Tạo bong bóng sự kiện và Ghi lại sự kiện?

Trả lời: Có hai cách để hoàn thành việc truyền sự kiện và thứ tự nhận một sự kiện trong HTML DOM API.

Đây là Tạo bong bóng sự kiện và Chụp sự kiện. Sự kiện hướng đến mục tiêu dự kiến ​​của nó trong phần trước, trong khi sự kiện đi xuống phần tử thứ hai.

  • Chụp sự kiện – Còn được gọi là nhỏ giọt, tính năng Chụp sự kiện hiếm khi được sử dụng. Quá trình bắt đầu với phần tử ngoài cùng nắm bắt sự kiện và sau đó truyền nó đến phần tử trong cùng.
  • Bong bóng sự kiện – Trong quá trình này, sự kiện sẽ được xử lý bởi phần tử trong cùng đầu tiên và sau đó được truyền đến phần tử ngoài cùng.

Câu hỏi: Bạn có thể tạo một mảng trong JS bằng bao nhiêu cách?

Trả lời: Có ba cách khác nhau để tạo một mảng trong JavaScript, đó là:

  1. Bằng cách tạo phiên bản của một mảng:

var someArray = new Array ();

  1. Bằng cách sử dụng một phương thức khởi tạo mảng:

var someArray = new Array (‘value1’, ‘value2’,…, ‘valueN’);

  1. Bằng cách sử dụng một ký tự mảng:

var someArray = [value1, value2,…., valueN];

Câu hỏi: Viết mã để trình bày cách lấy HTML bên trong của một phần tử trong JavaScript.

Bài giải:

<script type="text/javascript">
var inner= document.getElementById("inner").innerHTML ;
console.log(inner); // This is inner Element
document.getElementById("inner").innerHTML = "Html changed!";
var inner= document.getElementById("inner").innerHTML ;
console.log(inner); // Html changed!
</script>

Câu hỏi: Bạn sẽ xóa các bản sao khỏi một mảng JS như thế nào?

Trả lời: Có một số cách có thể để loại bỏ các bản sao khỏi một mảng JS. Ba cái được sử dụng nhiều nhất được mô tả như sau:

  1. Sử dụng Bộ lọc – Có thể loại bỏ các bản sao khỏi một mảng trong JavaScript bằng cách áp dụng một bộ lọc cho cùng một bộ lọc. Để gọi phương thức filter (), cần có ba đối số. Đó là mảng, phần tử hiện tại và chỉ mục của phần tử hiện tại.
Function unque_array (arr) {

let unique_array = arr.filter(function(elem, index, self) {
return index == self.indexOf(elem); }
return unique_array }
console.log(unique_array(array_with_duplicates));
  1. Bằng cách sử dụng vòng lặp For – Trong phương pháp loại bỏ các phần tử trùng lặp khỏi một mảng, một mảng trống được sử dụng để lưu trữ tất cả các phần lặp lại
elements.Array dups_names = ['Akhil', 'Vijay', 'Swapnil', 'Akhil', 'Vijay'];
function dups_array(dups_names) {
let unique = {};
names.forEach(function(i) {
If (!unique[i]) {
unique[i] = true; }
});
return Object.keys(unique);}
Dups_array(names);
  1. Bằng cách sử dụng Set – Đây là cách tiếp cận đơn giản nhất để loại bỏ các phần tử trùng lặp khỏi một mảng trong JS. Tập hợp là một đối tượng có sẵn để lưu trữ các giá trị duy nhất trong một mảng. Dưới đây là cách sử dụng nó để loại bỏ các phần tử lặp lại khỏi một mảng: function uniquearray (array) {

let unique_array = Array.from (set (array))

return unique_array;} Trong ví dụ trên, một tập hợp được tạo từ mảng có các phần tử trùng lặp. Vì một tập hợp là một tập hợp có thứ tự của các phần tử duy nhất, kết quả là một mảng có các phần tử không lặp lại.

Câu hỏi: Bạn có thể vẽ một JavaScript DOM đơn giản (Mô hình đối tượng tài liệu) không?

Bài giải:

DOM JavaScript

Câu hỏi: Viết mã để buộc một trang tải một trang khác bằng JavaScript.

Bài giải:

<script type=”text/javascript”>

<!– location.href=”http://newhost/newpath/newfile.html”; //–></script>

Câu hỏi: Vui lòng giải thích chế độ Nghiêm ngặt trong JavaScript. Ngoài ra, hãy cho tôi biết cách kích hoạt nó.

Trả lời: Khi ở Chế độ nghiêm ngặt, JS hiển thị lỗi cho một số đoạn mã có thể không có sẵn. Nói cách khác, chế độ Nghiêm ngặt thêm một số cưỡng chế nhất định vào JS. Nó được sử dụng để loại bỏ một số lỗi mã dẫn đến giảm hiệu quả của các công cụ JS.

Để bật Chế độ nghiêm ngặt, người ta cần thêm chuỗi chữ “sử dụng nghiêm ngặt” phía trên tệp cần được mở ở Chế độ nghiêm ngặt. Ví dụ:

function somefunction() {
"use strict";
var v = "Welcome to the Strict Mode";

Câu hỏi: Vòng lặp for-in trong JavaScript là gì? Đưa ra cú pháp của nó.

Trả lời: Vòng lặp for-in được sử dụng để lặp qua các thuộc tính của một đối tượng JavaScript — mỗi lần lặp lại của vòng lặp dẫn đến một thuộc tính của đối tượng được liên kết với tên biến. Vòng lặp tiếp tục cho đến khi hết các thuộc tính đối tượng.

Cú pháp chung của việc sử dụng vòng lặp for-in là:

for (variable name in object){
statement or block to execute
}

Câu hỏi: Hãy cho chúng tôi biết về sự khác biệt giữa các hàm .call () và .apply (). Đưa ra một ví dụ về việc chứng minh sự khác biệt giữa hai hàm JS.

Trả lời: Cả hai hàm .call () và .apply () gần như giống hệt nhau về cách sử dụng của chúng, với một ngoại lệ chính về cách các đối số được truyền vào hàm.

Vì các đối số phải được truyền trong phương thức .call (), nên bắt buộc phải biết về các đối số của hàm. Mặt khác, phương thức .apply () được sử dụng khi số lượng đối số không xác định. Ví dụ sau minh họa bằng cách sử dụng hai hàm:

var someObject = {
myProperty : 'Foo',
myMethod : function(prefix, postfix) {
alert(prefix + this.myProperty + postfix);
}
};
someObject.myMethod('<', '>');
var someOtherObject = {
myProperty : 'Bar'
};
someObject.myMethod.call(someOtherObject, '<', '>');
someObject.myMethod.apply(someOtherObject, ['<', '>']);

Câu hỏi: Tập lệnh hoãn lại đóng vai trò gì trong JavaScript?

Trả lời: Trong khi tải trang, việc phân tích cú pháp mã HTML bị tạm dừng theo mặc định cho đến khi tập lệnh không ngừng thực thi. Điều này dẫn đến sự chậm trễ trong việc hiển thị trang web nếu máy chủ chạy chậm hoặc tập lệnh sẽ được tải cồng kềnh.

Việc sử dụng các tập lệnh bị trì hoãn dẫn đến sự chậm trễ trong quá trình thực thi của tập lệnh khi trình phân tích cú pháp HTML đang chạy. Do đó, điều này dẫn đến giảm thời gian tải của trang web.

Câu hỏi: Bạn hiểu gì về đối tượng Screen? Nêu các thuộc tính khác nhau của chúng.

Trả lời: Để đọc thông tin từ màn hình của khách hàng, các đối tượng màn hình được sử dụng trong JavaScript. Thuộc tính của các đối tượng màn hình là:

  • AvailHeight – Cung cấp chiều cao của màn hình máy khách (Không bao gồm thanh tác vụ)
  • AvailWidth – Cung cấp chiều rộng của màn hình máy khách (Không bao gồm thanh tác vụ)
  • ColorDepth – Cung cấp độ sâu bit của hình ảnh được hỗ trợ bởi màn hình máy khách.
  • Chiều cao – Cung cấp tổng chiều cao của màn hình máy khách.
  • Chiều rộng – Cung cấp tổng chiều rộng của màn hình máy khách.

Câu hỏi: Bạn có thể giải thích các hàm thoát () và unescape () không?

Trả lời: Hàm Escape () cho phép chuyển đổi một chuỗi thành một dạng mã hóa trong JavaScript. Nó được sử dụng để truyền an toàn thông tin từ hệ thống này sang hệ thống khác qua một số mạng. Ví dụ: hãy xem xét đoạn mã sau:

This%20string%20is%20encoded%21

Đầu ra của đoạn mã nói trên sẽ giống như sau:

This%3F%20string%20is%20encoded%21

Hàm unescape () thực hiện hoàn toàn ngược lại với hàm Escape (), tức là nó giải mã một chuỗi được mã hóa thành chuỗi ban đầu. Do đó, đoạn mã sau:

This? string is encoded!

Sẽ mang lại kết quả đầu ra sau:

Chuỗi này được mã hóa!

Câu hỏi: Vui lòng viết mã JavaScript để thêm động các phần tử mới.

Bài giải:

<html>
<head>
<title>t1</title>
<script type="text/javascript">
function addNode() { var newP = document.createElement("p");
var textNode = document.createTextNode(" This is a new text node");
newP.appendChild(textNode); document.getElementById("firstP").appendChild(newP); }
</script></head>
<body> <p id="firstP">firstP</body>
</html>
</pre>

Phần kết luận

Tất cả đã được làm xong! Đó là danh sách các câu hỏi phỏng vấn JavaScript quan trọng nhất. Tôi hy vọng những câu hỏi của Cuộc phỏng vấn JS này sẽ giúp bạn tiến gần hơn đến công việc JavaScript mơ ước của mình.

Hãy cân nhắc xem khóa học udemy tuyệt vời này để chuẩn bị cho một cuộc phỏng vấn JS sắp tới: JavaScript Interview Prep: Các vấn đề thực hành.

Đây là một cuốn sách xuất sắc với các câu hỏi và câu trả lời hàng đầu về lập trình Javascript: Chuẩn bị phỏng vấn JavaScript: Các vấn đề thực hành [Video].

Hãy xem các hướng dẫn JavaScript hay nhất này để nâng cao kiến thức và kỹ năng JS của bạn.

Tất cả những gì tốt nhất!

Leave a Reply