Bạn là một lập trình viên Javascript đang chuẩn bị cho buổi phỏng vấn tuyển dụng để có cơ hội làm việc trong công việc mơ ước của mình. Đừng bỏ lỡ bài viết dưới đây của Glints vì chúng tôi sẽ giới thiệu cho bạn bộ câu hỏi phỏng vấn Javascript hữu ích, giúp bạn tự tin hơn trong bất kỳ buổi phỏng vấn nào sắp tới. Hãy cùng khám phá ngay!
Contents
Phép so sánh ===
(!=
): Phép so sánh bằng trong Javascript tuân theo các quy tắc sau:
false
.false
. Nếu không, ta phải so sánh giá trị.true
, nếu nội dung khác nhau, kết quả là false
.true
hoặc cùng false
, kết quả là true
, còn lại sẽ ra kết quả false
.true
, còn lại là false
.Phép so sánh ==
(!=
) cũng tuân theo các quy luật tương tự.
Phép so sánh hơn kém bao gồm >
, <
, >=
, <=
tuân theo các quy tắc sau:
Trường hợp 1: Nếu cả 2 vế cùng kiểu
Trường hợp 2: Nếu cả 2 vế khác kiểu, ta cần tuân theo các quy tắc sau:
false
.false
.Callback function, hay còn gọi là hàm gọi lại, là một hàm chỉ được thực thi sau khi hàm khác đã thực thi xong.
Ví dụ:
function writeBlog(topic, callback) {
alert(`Bắt đầu viết blog về ${topic}.`);
// Sau đó thực thi callback function đã truyền vào
callback();
}
writeBlog('JS', function() {
alert('Viết blog xong rồi nhé!');
});
Nếu bạn chạy đoạn code trên, kết quả sẽ trả về hai thông báo. Thông báo đầu tiên là “Bắt đầu viết blog về JS.” và thông báo thứ hai là: “Viết blog xong rồi nhé!”
&&
để làm gì?Toán tử &&
trong Javascript sẽ trả về giá trị true
nếu cả hai toán hạng đều là true
, ngược lại sẽ trả về false
.
Trong Javascript có hai loại dữ liệu: Kiểu nguyên thủy (primitive) và object.
Kiểu nguyên thủy là bất biến, một kiểu nguyên thủy không phải là object nên chúng không có các phương thức riêng của mình.
Có sáu loại nguyên thủy trong Javascript:
true
hoặc false
||
dùng để làm gì trong JavaScriptToán tử ||
trả về true
nếu 1 trong 2 số hạng là true
: a || b
.
Undefined nghĩa là không xác định. Giá trị của biến là undefined trong Javascript khi bạn khai báo một biến nhưng chưa gán giá trị cho nó.
Null nghĩa là giá trị rỗng hoặc giá trị không tồn tại, một biến null là khi chúng không có giá trị.
Sự khác biệt giữa null và undefined: undefined có kiểu giá trị là undefined trong khi null lại là 1 object.
Falsy values là giá trị trong Javascript mà khi ta ép kiểu về Boolean sẽ cho ra giá trị false
.
Tương tự, truthy values là những giá trị mà khi ta ép kiểu về Boolean sẽ cho ra giá trị true
.
Có 7 falsy values trong Javascript:
Một IIFEs – viết tắt của Immediately Invoked Function Express – được thực thi ngay sau khi nó được tạo.
Để kiểm tra một số có phải số nguyên hay không, cách nhanh chóng là sử dụng hàm isInteger
. Tuy nhiên cách này sẽ không cho bạn biết số đó là số âm hay số dương.
Cách làm khác là lấy số đó chia cho 1 và xem có phần dư hay không.
Anonymous function – hay còn được biết đến là hàm ẩn danh – là hàm không có tên và được tạo ra trong thời gian chạy ứng dụng.
Named function – hay còn gọi là hàm được đặt tên – được sử dụng để gỡ lỗi và tìm kiếm những hàm gây ra lỗi.
Ba giai đoạn của sự lan truyền sự kiện là propagation, capturing sau đó là bubbling.
Đầu tiên, propagation (lan truyền) xảy ra với việc capturing trước. Trong giai đoạn capturing, các sự kiện sẽ truyền từ Window qua DOM tree cho đến khi nó đến đích. Sau đó, phần tử mục tiêu được truy cập và (trong đoạn code này có thể là event.target
), giai đoạn bubbling xảy ra.
Kết quả của đoạn code sau trả về false
.
Từ khóa this
được dùng để đại diện cho một đối tượng. Cụ thể, đối tượng ở đây là đối tượng đang thực thi code Javascript hiện tại.
Ví dụ:
function state() {
console.log(this.name);
}
var name = "NY";
var obj1 = { name: "IN", state: state };
var obj2 = { name: "CA", state: state };
state(); // "NY"
obj1.state(); // "IN"
obj2.state(); // "CA"
Math.min() trả về Infinity
và Math.max() trả về -Infinity
nếu không có đối số nào được đưa ra. Đây là một phần của đặc tả cho các phương thức min() và max(), và nó có logic đằng sau.
Ví dụ:
Math.min(1);
// 1
Math.min(1, Infinity);
// 1
Math.min(1, -Infinity);
// -Infinity
Nếu -Infinity
là đối số mặc định của Math.min(), thì mọi kết quả sẽ là -Infinity
, điều này là vô dụng. Trong khi đó, nếu đối số mặc định là Infinity
, thì việc thêm bất kỳ đối số nào khác, kết quả sẽ trả về số đó. Đó chính là hành vi mà chúng ta muốn.
Kết quả của việc chuyển đổi kiểu cho ra kết quả 018 - 017
là 3. Đây là một trường hợp của số bát phân (octal numbers).
Trong Javascript, tiền tố 0 sẽ chuyển đổi bất kỳ số nào đứng sau thành số bát phân. Tuy nhiên, số 8 không được sử dụng trong hệ bát phân nên với các số có chữ số 8, chúng sẽ trở về số thập phân thông thường.
Do đó 018 - 017
tương đương với 18 (số thường) – 15 (bát phân của 017) và trả về kết quả là 3.
AJAX – Asynchronous JavaScript And XML, là một phương pháp để gửi và nhận dữ liệu từ máy chủ trong nền (asynchronously) mà không cần làm tải lại toàn bộ trang web.
AJAX hoạt động như sau: một yêu cầu XHR được tạo bởi Javascript sẽ được gửi đến máy chủ mỗi khi một sự kiện xảy ra trên trang web. Máy chủ sẽ xử lý yêu cầu và trả về phản hồi cho trang web và các hành động cần thiết sẽ được thực hiện.
Ưu điểm của AJAX:
Nhược điểm của AJAX:
Một Function declaration, hay còn được biết đến là khai báo hàm, thường sử dụng từ khóa function
, tên của hàm sẽ theo sau.
Ngược lại, một Function Expression, hay còn gọi là biểu thức hàm, bắt đầu bằng var
, const
hoặc let
, theo sau là tên của hàm và toán tử gán =
.
Hoisting là việc Javascript di chuyển khai báo lên đầu mọi scope (phạm vi). Đây là một khía cạnh không xác định của Javascript, vì vậy để tránh tạo ra lỗi, bạn nên khai báo tất cả các biến ở đầu mọi scope.
Hoisting đơn giản là việc bạn có thể sử dụng một biến trước khi nó được khai báo.
.bind()
được dùng để gọi một hàm trong ngữ cảnh nhất định. Chú ý rằng khi sử dụng .bind()
, nó sẽ không gọi hàm, chỉ sửa đổi ngữ cảnh.
.call()
và .apply()
ngược lại sẽ gọi hàm ngay lập tức, đồng thời sửa đổi ngữ cảnh.
Sự khác biệt giữa .call()
và .apply()
:
.call()
chấp nhận một danh sách giá trị làm đối số của nó..apply()
chỉ chấp nhận một mảng làm đối số của nó.Cách sử dụng: Sử dụng .bind()
khi muốn sửa đổi ngữ cảnh và gọi hàm sau này. Sử dụng .call()
hoặc .apply()
khi muốn sửa đổi ngữ cảnh và gọi hàm ngay lập tức.
Về mặt kỹ thuật, nếu xác định một biến mà không có từ khóa sẽ gây rò rỉ bộ nhớ.
Promise có thể ở một trong ba trạng thái sau:
Ưu điểm của việc sử dụng Promises:
Promise.all
.Promise.race
, bạn có thể đợi kết quả từ Promises đồng thời đang chờ xử lý.Nhược điểm của việc sử dụng Promises:
Trên đây là những câu hỏi phỏng vấn Javascript đáng chú ý nhất hiện nay. Chúc bạn tự tin và thành công trong buổi phỏng vấn sắp tới của mình để đạt được công việc mơ ước.
Tác Giả
This post was last modified on Tháng Năm 11, 2024 11:57 chiều
Khám phá và tận dụng tiềm năng kinh doanh trên nhiều nền tảng là điều…
Mobile App đang trở thành một phần thiết yếu trong cuộc sống hiện đại. Với…
Bạn đã bao giờ quên mật khẩu máy tính và không biết phải làm sao?…
Driver chính là phần mềm giúp hệ điều hành nhận diện phần cứng trên máy…
Hiện nay, lập trình viên không cần phải thực hiện toàn bộ công việc lập…
Lập trình ứng dụng cho iOS không chỉ đơn thuần là một quyết định khó…