Câu hỏi phỏng vấn javascript
Contents
- Phân biệt var, let và const?
- Strict mode trong javascript là gì?
- this trong javascript là gì?
- Khác nhau giữa undefined và null trong javascript?
- Closure trong javascript là gì?
- Hosting trong javascript là gì?
- Phân biệt giữa Function Declaration và Function Expression
- Spread Operator trong javascript ?
- Anonymous function là gì ?
- Tại sao 0.1 + 0.2 không bằng 0.3 ?
- Promise trong javascript là gì ?
- Câu hỏi 1: Hoisting trong Javascript xảy ra như thế nào?
- 3 Giai đoạn của event propagation là gì?
- Dữ liệu được lưu trữ trong sessionStorage bị xóa khi nào?
- Sự khác nhau của hàm call và hàm bind là gì?
- Bạn đã hiểu về reduce chưa?
- Trong JavaScript thì This có chức năng gì?
- Hãy nêu sự khác nhau giữa Null và Undefined trong JS
- Bạn hiểu Closure trong JS là gì?
- Trên ổ đĩa Cookies được lưu ở đâu?
- Bạn hiểu thế nào là lập trình bất đồng bộ trong JS?
Phân biệt var, let và const?
const dùng để khai báo một hằng số – là một giá trị không thay đổi được trong suốt quá trình chạy.
let tạo ra một biến chỉ có thể truy cập được trong block bao quanh nó
var – tạo ra một biến có phạm vi truy cập xuyên suốt function chứa nó.
Strict mode trong javascript là gì?
Strict Mode là một quy mẫu nghiêm khắc trong Javascript. Nếu như việc viết code bình thường là Normal mode, thì Strict Mode sẽ có thêm các quy định khác so với Normal mode.
Ví dụ: một biến chưa khởi tạo mà gọi nó thì sẽ báo lỗi.
'use strict'; a = 5;
this trong javascript là gì?
Từ khóa this dùng để chỉ đối tượng từ nơi nó được gọi.
This ở ngữ cảnh khác nhau sẽ khác nhau.
Khác nhau giữa undefined và null trong javascript?
Khi tạo ra một biến mà không gán giá trị thì nó sẽ là undefined. Còn null là một object
Closure trong javascript là gì?
Closure là một hàm bên trong, truy cập đến các giá trị bên ngoài phạm vi của nó.
Hosting trong javascript là gì?
Hoisting là hành động mặc định của Javascript, nó sẽ chuyển phần khai báo lên phía trên top Trong Javascript, một biến (variable) có thể được khai báo sau khi được sử dụng.
Phân biệt giữa Function Declaration và Function Expression
Function declaration sẽ sử dụng từ khóa function rồi đến tên hàm. Còn Function expression sẽ được bắt đầu với từ khóa var, const, hoặc let (hàm gán cho một biến).
Spread Operator trong javascript ?
Spread operator là một biểu thức mở rộng giúp gộp các phần tử vào trong một cách viết ngắn gọn hơn. Cách viết này được thể hiện bằng dấu ...
Anonymous function là gì ?
Là một hàm ẩn danh, không có tên gọi
Tại sao 0.1 + 0.2 không bằng 0.3 ?
Vấn đề này liên quan đến việc Javascript lưu trữ dữ liệu float ở dạng nhị phân chính xác tới từng con số sau dấu phẩy, không thể biểu diễn chính xác số thập phân, nên gây ra sai số kiểu này.
Promise trong javascript là gì ?
Promise là một cơ chế trong JavaScript giúp bạn thực thi các tác vụ bất đồng bộ mà không rơi vào callback hell hay pyramid of doom, là tình trạng các hàm callback lồng vào nhau ở quá nhiều tầng. Có 3 trạng thái: pending, fulfilled, reject.
Câu hỏi 1: Hoisting trong Javascript xảy ra như thế nào?
Trước tiên bạn thử đoán kết quả của chương trình Javacript sau đây là gì?
function sayHi() { console.log(name); console.log(age); var name = "Lydia"; let age = 21; } sayHi();
- A:
Lydia
andundefined
- B:
Lydia
andReferenceError
- C:
ReferenceError
and21
- D:
undefined
andReferenceError
Đáp án: D
Bên trong Function này, trước tiên chúng ta khai báo biến name bằng từ khóa var. Điều này có nghĩa là hoisting đã xảy ra (không gian bộ nhớ được thiết lập trong giai đoạn tạo, nhưng chưa thực hiện phép gán giá trị) với giá trị mặc định là undefined, tiếp sau đó chúng ta mới thực sự định nghĩa biến name.
Trước khi cố gắng log biến name thì chúng ta chưa hề định nghĩa biến name nào, vì hoisting xảy ra và biến name giữ giá trị là undefined.
Các biến với từ khóa let (và const) cũng được hoisting, nhưng không giống như từ khóa var, chúng không thể truy cập trước khi chúng thực sự được khởi tạo.
Đây được gọi là “Vùng chết tạm thời”. Do đó, khi cố gắng truy cập các biến này trước khi được khai báo. Javascript sẽ ném ra ReferenceError.
3 Giai đoạn của event propagation là gì?
Capturing > Target > Bubbling
Dữ liệu được lưu trữ trong sessionStorage bị xóa khi nào?
Khi người dùng đóng tab.
Sự khác nhau của hàm call và hàm bind là gì?
Chúng ta có đoạn code sau:
const person = { name: "Lydia" }; function sayHi(age) { console.log(`${this.name} is ${age}`); } sayHi.call(person, 21); sayHi.bind(person, 21);
Bạn chọn đáp án nào?
- A:
undefined is 21
Lydia is 21
- B:
function
function
- C:
Lydia is 21
Lydia is 21
- D:
Lydia is 21
function
Bạn đã hiểu về reduce chưa?
Reduce nối mảng phía sau mảng đã có.
Trong JavaScript thì This có chức năng gì?
Hãy nêu sự khác nhau giữa Null và Undefined trong JS
Undefined được hiểu là không xác định. Khi khai báo một biến nhưng không gán cho nó giá trị thì biến đó sẽ được gán giá trị là Undefined.
Còn Null là một loại Object, nó tương tự như string, number,…
Bạn hiểu Closure trong JS là gì?
Closure trong JS là một hàm tham chiếu đến các biến nằm ngoài phạm vi của hàm đó. Nó cho phép người dùng truy cập đến các biến hoặc tham số ngoài phạm vi của hàm.
Trên ổ đĩa Cookies được lưu ở đâu?
Vị trí lưu các tập tin Cookies sẽ phụ thuộc vào trình duyệt và hệ điều hành đang sử dụng.
Đối với trình duyệt Netscape trên Windows, các cookies sẽ được lưu trong tệp cookies.txt theo đường dẫn C:\Program Files\ Netscape\Users\username\cookies.txt.
Con trên Internet Explorer, ác cookies được lưu trữ trong tập tin username@website.txt theo đường dẫn C:\Windows\Cookies\username@Website.txt.