Bài đăng này bao gồm một số khái niệm cơ bản trong JavaScript. Mọi lập trình viên JavaScript đều phải biết và thành thạo những
1. Nguyên mẫu JavaScriptHãy để tôi giải thích các cách tạo đối tượng khác nhau trong JavaScript. Một trong những cách tạo đối tượng trong JavaScript là hàm tạo. Hãy xem xét chức năng xây dựng dưới đây
function Bike[model,color]{
this.model = model,
this.color = color,this.getDetails = function[]{
return this.model+' bike is '+this.color;
}
}
var bikeObj1 = new Bike['BMW','BLACK'];
var bikeObj2 = new Bike['BMW','WHITE'];console.log[bikeObj1.getDetails[]]; //output: BMW bike is BLACK
console.log[bikeObj2.getDetails[]]; //output: BMW bike is WHITEconsole.log[bikeObj1,bikeObj2] //attacheced below image as output
đầu ra của bảng điều khiển exp. log[bikeObj1,bikeObj2]
Trong ví dụ trên, chúng ta đang tạo hai đối tượng, bikeObj1, bikeObj2 bằng hàm tạo. Trong JavaScript, mọi đối tượng đều có phương thức và thuộc tính riêng. Trong ví dụ của chúng ta, hai đối tượng có hai thể hiện của hàm tạo
console.log[bikeObj1.__proto__ === Bike.prototype ];//output : true3. Thật vô nghĩa khi có một bản sao của
console.log[bikeObj1.__proto__ === Bike.prototype ];//output : true4 làm điều tương tự
Thay vì sử dụng một bản sao của các phiên bản, chúng ta sẽ sử dụng thuộc tính nguyên mẫu của hàm tạo
Nguyên mẫu
Khi một đối tượng được tạo trong JavaScript, công cụ JavaScript sẽ thêm thuộc tính
console.log[bikeObj1.__proto__ === Bike.prototype ];//output : true5 vào đối tượng mới được tạo có tên là
console.log[bikeObj1.__proto__ === Bike.prototype ];//output : true6.
console.log[bikeObj1.__proto__ === Bike.prototype ];//output : true6 hoặc
console.log[bikeObj1.__proto__ === Bike.prototype ];//output : true5 trỏ đến đối tượng nguyên mẫu của hàm tạo
function Bike[model,color]{
this.model = model,
this.color = color
}Bike.prototype.getDetails = function[]{
return this.model+" bike is "+this.color;
}
var bikeObj1 = new Bike[‘BMW’,’Black’];
var bikeObj2 = new Bike[‘BMW’,’white’];console.log[bikeObj1.getDetails[]]; //output: BMW bike is BLACK
console.log[bikeObj2.getDetails[]]; //output: BMW bike is WHITE
console.log[bikeObj1,bikeObj2] // attacheced below image as output
từ hình trên bên trong bikeObj1and bikeObj2 lớp không có thuộc tính getDetails[] nó chỉ được kế thừa từ Bike
Đối tượng
console.log[bikeObj1.__proto__ === Bike.prototype ];//output : true9, được tạo bằng hàm tạo Bike, có thuộc tính
console.log[bikeObj1.__proto__ === Bike.prototype ];//output : true6 hoặc
console.log[bikeObj1.__proto__ === Bike.prototype ];//output : true5 trỏ đến đối tượng nguyên mẫu của hàm tạo
console.log[bikeObj1.__proto__ === Bike.prototype ];//output : true12
Trong đoạn mã dưới đây, cả thuộc tính
console.log[bikeObj1.__proto__ === Bike.prototype ];//output : true9it của
console.log[bikeObj1.__proto__ === Bike.prototype ];//output : true6 hoặc
console.log[bikeObj1.__proto__ === Bike.prototype ];//output : true5 và thuộc tính
console.log[bikeObj1.__proto__ === Bike.prototype ];//output : true16 đều bằng nhau. Hãy kiểm tra xem chúng có trỏ đến cùng một vị trí hay không bằng cách sử dụng toán tử
console.log[bikeObj1.__proto__ === Bike.prototype ];//output : true17
console.log[bikeObj1.__proto__ === Bike.prototype ];//output : true
TK [Không chắc tác giả định nói gì ở đây] Vì vậy, sử dụng thuộc tính nguyên mẫu, bao nhiêu đối tượng được tạo thì hàm chỉ được tải vào bộ nhớ một lần và chúng ta có thể ghi đè hàm nếu cần
2. Lớp JavaScript[ES6]Các lớp JavaScript, được giới thiệu trong ES6, chủ yếu là đường cú pháp đối với kế thừa dựa trên nguyên mẫu hiện có của JavaScript. Cú pháp lớp không giới thiệu mô hình kế thừa hướng đối tượng mới cho JavaScript. Đầu ES5 sử dụng biểu thức hàm
kế thừa dựa trên nguyên mẫu hiện có
console.log[bikeObj1.__proto__ === Bike.prototype ];//output : true1
Định nghĩa các lớp
Các lớp trên thực tế là các “hàm đặc biệt”, và giống như bạn có thể định nghĩa các biểu thức hàm và khai báo hàm, cú pháp lớp có hai thành phần. biểu thức lớp và khai báo lớp
lớp ES6
console.log[bikeObj1.__proto__ === Bike.prototype ];//output : true9
Lợi ích của việc sử dụng lớp học
- Cú pháp thuận tiện, khép kín
- Một cách duy nhất, hợp quy để mô phỏng các lớp trong JavaScript. Trước ES6, đã có một số triển khai cạnh tranh trong các thư viện phổ biến
- Quen thuộc hơn với những người có nền tảng ngôn ngữ dựa trên lớp học
IIFE trong JavaScript là gì?
IIFE [Biểu thức hàm được gọi ngay lập tức] là một hàm JavaScript chạy ngay khi được xác định
console.log[bikeObj1.__proto__ === Bike.prototype ];//output : true0
Lần gặp đầu tiên của bạn có vẻ khá khó hiểu nhưng thực ra, mô hình rất đơn giản. Mẫu được gọi ngay lập tức biểu thức hàm
Hàm JavaScript có thể được tạo thông qua khai báo hàm hoặc biểu thức hàm. Khai báo hàm là cách “thông thường” để tạo một hàm được đặt tên
Một hàm được tạo trong ngữ cảnh của một biểu thức cũng là một biểu thức hàm. Điều quan trọng về các biểu thức JavaScript là chúng trả về các giá trị
Trong cả hai trường hợp trên, giá trị trả về của biểu thức là hàm.
Điều đó có nghĩa là nếu chúng ta muốn gọi biểu thức hàm ngay lập tức, chúng ta chỉ cần xử lý một vài dấu ngoặc đơn ở cuối. Điều này đưa chúng ta trở lại đoạn mã đầu tiên mà chúng ta đã xem xét.
console.log[bikeObj1.__proto__ === Bike.prototype ];//output : true1
Lý do chính để sử dụng IIFE là để có được quyền riêng tư dữ liệu. Bởi vì phạm vi biến var của JavaScript đối với hàm chứa của chúng, bất kỳ biến nào được khai báo trong IIFE đều không thể được truy cập bởi thế giới bên ngoài
4. hiểu biết Phạm viMột định nghĩa đơn giản cho một phạm vi trong JavaScript
Phạm vi là khả năng truy cập của các biến, hàm và đối tượng trong một số phần cụ thể của mã của bạn trong thời gian chạy. Nói cách khác, phạm vi xác định mức độ hiển thị của các biến và các tài nguyên khác trong các vùng mã của bạn
Theo định nghĩa ở trên về Phạm vi, Vì vậy, điểm hạn chế khả năng hiển thị của các biến và không có sẵn mọi thứ ở mọi nơi trong mã của bạn
phạm vi được xác định theo hai cách chính,
- Phạm vi toàn cầu
- Phạm vi địa phương
console.log[bikeObj1.__proto__ === Bike.prototype ];//output : true2
xem xét biến lời chào mã ở trên phải là phạm vi toàn cầu, nó có thể truy cập bên trong hàm,
console.log[bikeObj1.__proto__ === Bike.prototype ];//output : true3
Trong đoạn mã trên cho phạm vi cục bộ,
Ở các biến mức phạm vi trong JavaScript ES6 đã cập nhật biến cẩu thả let, var, const gõ kiểm tra với điều đó, Để tìm hiểu phạm vi, bạn cũng cần hiểu về cẩu
để biết thêm tham khảo trang web này https. //rượu Scotch. io/hướng dẫn/hiểu-phạm vi-in-javascript
5. Đóng JavaScriptĐóng cửa là gì?
Bao đóng là sự kết hợp của một hàm và môi trường từ vựng trong đó hàm đó được khai báo
Bao đóng là một hàm bên trong có quyền truy cập vào các biến của hàm bên ngoài [kèm theo] — chuỗi phạm vi. Việc đóng cửa có ba chuỗi phạm vi. nó có quyền truy cập vào phạm vi của chính nó [các biến được xác định giữa các dấu ngoặc nhọn của nó], nó có quyền truy cập vào các biến của hàm bên ngoài và nó có quyền truy cập vào các biến toàn cục
Hãy xem một ví dụ đóng cửa dưới đây
console.log[bikeObj1.__proto__ === Bike.prototype ];//output : true4
Trong mã này, Chúng tôi có một hàm bên ngoài
console.log[bikeObj1.__proto__ === Bike.prototype ];//output : true18 trả về một hàm bên trong là
console.log[bikeObj1.__proto__ === Bike.prototype ];//output : true19,
Hàm bên trong sẽ có quyền truy cập vào các biến trong phạm vi hàm bên ngoài, ngay cả sau khi hàm bên ngoài đã trả về
6. Mô hình mô-đunTrong JavaScript, một mô-đun là một đơn vị nhỏ mã độc lập, có thể tái sử dụng. Các mô-đun là nền tảng của nhiều mẫu thiết kế JavaScript và cực kỳ cần thiết khi xây dựng bất kỳ ứng dụng dựa trên JavaScript không tầm thường nào
Xuất mô-đun JavaScript dưới dạng giá trị thay vì xác định loại, vì mô-đun JavaScript JavaScript có thể xuất một đối tượng, Các mô-đun xuất chuỗi chứa mẫu HTML hoặc biểu định kiểu CSS cũng phổ biến
JavaScript không có từ khóa riêng tư nhưng chúng ta có thể đạt được các phương thức và thuộc tính riêng tư bằng cách sử dụng các bao đóng
function Bike[model,color]{0
this.model = model,
this.color = color
}Bike.prototype.getDetails = function[]{
return this.model+" bike is "+this.color;
}
var bikeObj1 = new Bike[‘BMW’,’Black’];
var bikeObj2 = new Bike[‘BMW’,’white’];console.log[bikeObj1.getDetails[]]; //output: BMW bike is BLACK
console.log[bikeObj2.getDetails[]]; //output: BMW bike is WHITE
console.log[bikeObj1,bikeObj2] // attacheced below image as output
các mô-đun này có thể đã xuất sang các tệp JS khác bằng cách sử dụng từ khóa xuất,
function Bike[model,color]{1
this.model = model,
this.color = color
}Bike.prototype.getDetails = function[]{
return this.model+" bike is "+this.color;
}
var bikeObj1 = new Bike[‘BMW’,’Black’];
var bikeObj2 = new Bike[‘BMW’,’white’];console.log[bikeObj1.getDetails[]]; //output: BMW bike is BLACK
console.log[bikeObj2.getDetails[]]; //output: BMW bike is WHITE
console.log[bikeObj1,bikeObj2] // attacheced below image as output
các mô-đun có thể nhập vào một tệp JS khác
function Bike[model,color]{2
this.model = model,
this.color = color
}Bike.prototype.getDetails = function[]{
return this.model+" bike is "+this.color;
}
var bikeObj1 = new Bike[‘BMW’,’Black’];
var bikeObj2 = new Bike[‘BMW’,’white’];console.log[bikeObj1.getDetails[]]; //output: BMW bike is BLACK
console.log[bikeObj2.getDetails[]]; //output: BMW bike is WHITE
console.log[bikeObj1,bikeObj2] // attacheced below image as output
Tại sao chúng ta cần sử dụng Module?
Có rất nhiều lợi ích khi sử dụng các mô-đun có lợi cho việc mở rộng,
một số thì,
- khả năng bảo trì
- khả năng sử dụng lại
- không gian tên
Trong JavaScript, nghĩa là cẩu của nó,
Hoisting là một cơ chế JavaScript trong đó các khai báo biến và hàm được di chuyển lên đầu phạm vi của chúng trước khi thực thi mã
Nó thực sự là một định nghĩa cho cẩu,
Trong lời giải thích đơn giản cho Hoisting với mã,
function Bike[model,color]{3
this.model = model,
this.color = color
}Bike.prototype.getDetails = function[]{
return this.model+" bike is "+this.color;
}
var bikeObj1 = new Bike[‘BMW’,’Black’];
var bikeObj2 = new Bike[‘BMW’,’white’];console.log[bikeObj1.getDetails[]]; //output: BMW bike is BLACK
console.log[bikeObj2.getDetails[]]; //output: BMW bike is WHITE
console.log[bikeObj1,bikeObj2] // attacheced below image as output
thực ra, JavaScript đã cẩu khai báo biến. Đây là giao diện của đoạn mã trên đối với trình thông dịch
function Bike[model,color]{4
this.model = model,
this.color = color
}Bike.prototype.getDetails = function[]{
return this.model+" bike is "+this.color;
}
var bikeObj1 = new Bike[‘BMW’,’Black’];
var bikeObj2 = new Bike[‘BMW’,’white’];console.log[bikeObj1.getDetails[]]; //output: BMW bike is BLACK
console.log[bikeObj2.getDetails[]]; //output: BMW bike is WHITE
console.log[bikeObj1,bikeObj2] // attacheced below image as output
JavaScript chỉ nâng khai báo, không khởi tạo
Chắc chắn, điều này có nghĩa là bất kể hàm và biến được khai báo ở đâu, chúng sẽ được chuyển lên đầu phạm vi của chúng bất kể phạm vi của chúng là toàn cục hay cục bộ
vì vậy điều này cũng phù hợp với một biến của phạm vi cấp chức năng cũng được nâng lên
Điều tiếp theo bạn cần biết về Palăng,
- từ khóa let, var, const trong JavaScript [ES6]
- chức năng cẩu
- lớp cẩu
Để biết thêm tham khảo trang web này Understateing-Hoisting-in-JavaScript
8. cà riGiải thích về Curry với các ví dụ trong JavaScript
Currying là một kỹ thuật đánh giá hàm với nhiều đối số, thành một chuỗi hàm với một đối số duy nhất
Nói cách khác, khi một hàm, thay vì lấy tất cả các đối số cùng một lúc, lại lấy đối số đầu tiên và trả về một hàm mới nhận đối số thứ hai và trả về một hàm mới nhận đối số thứ ba, v.v.
xem xét mã ví dụ dưới đây
function Bike[model,color]{5
this.model = model,
this.color = color
}Bike.prototype.getDetails = function[]{
return this.model+" bike is "+this.color;
}
var bikeObj1 = new Bike[‘BMW’,’Black’];
var bikeObj2 = new Bike[‘BMW’,’white’];console.log[bikeObj1.getDetails[]]; //output: BMW bike is BLACK
console.log[bikeObj2.getDetails[]]; //output: BMW bike is WHITE
console.log[bikeObj1,bikeObj2] // attacheced below image as output
cà ri này đạt được thông qua các lần đóng, vì vậy các biến chương trình ở trên a, b thuộc tính riêng của hàm cha
Tại sao cà ri hữu ích?
Chủ yếu Nó giúp tạo ra một chức năng bậc cao hơn. Nó cực kỳ hữu ích trong việc xử lý sự kiện
Làm cách nào để chuyển đổi một chức năng hiện có thành phiên bản đã được chỉnh sửa?
Chức năng cà ri không tồn tại trong JavaScript gốc. Nhưng một thư viện như lodash giúp chuyển đổi một chức năng thành một chức năng dễ dàng hơn
9. ghi nhớGhi nhớ là một kỹ thuật lập trình cố gắng tăng hiệu suất của hàm bằng cách lưu vào bộ đệm các kết quả được tính toán trước đó của nó. Bởi vì các đối tượng JavaScript hoạt động giống như các mảng kết hợp, nên chúng là những ứng cử viên lý tưởng để hoạt động như các bộ đệm. Mỗi khi một chức năng ghi nhớ được gọi, các tham số của nó được sử dụng để lập chỉ mục bộ đệm. Nếu có dữ liệu thì có thể trả về mà không cần thực hiện toàn bộ chức năng. Tuy nhiên, nếu dữ liệu không được lưu vào bộ đệm thì hàm sẽ được thực thi và kết quả được thêm vào bộ đệm
Chức năng là một phần không thể thiếu của lập trình, chúng giúp mô đun hóa và tái sử dụng mã của chúng tôi, theo định nghĩa ở trên, ghi nhớ là một cách tối ưu hóa mã của chúng tôi
function Bike[model,color]{6
this.model = model,
this.color = color
}Bike.prototype.getDetails = function[]{
return this.model+" bike is "+this.color;
}
var bikeObj1 = new Bike[‘BMW’,’Black’];
var bikeObj2 = new Bike[‘BMW’,’white’];console.log[bikeObj1.getDetails[]]; //output: BMW bike is BLACK
console.log[bikeObj2.getDetails[]]; //output: BMW bike is WHITE
console.log[bikeObj1,bikeObj2] // attacheced below image as output
từ đoạn mã trên, bạn có thể hiểu ghi nhớ
11. Các phương thức apply, call và bindTheo truyền thống, JS có đối tượng, Thuộc tính và phương thức, vì vậy mỗi đối tượng đều có thuộc tính và phương thức
Trong JavaScript, chúng ta có thể thực hiện một số phép thuật bằng cách sử dụng các phương thức gọi, áp dụng, liên kết,
Phương thức gọi/Áp dụng/Liên kết JavaScript
Xem xét hình trên Object1 có thể có Thuộc tính riêng và Object2 có thể có thuộc tính riêng, vì vậy chúng ta có thể viết một phương thức chung cho các đối tượng này và sử dụng bên trong đó bằng phương thức gọi/áp dụng/liên kết. Tôi hy vọng bây giờ bạn có thể hiểu tại sao gọi/áp dụng/liên kết phương thức bằng cách sử dụng
hãy xem sự khác biệt và mã cho phương thức Gọi/Áp dụng/Liên kết
1. Phương thức gọi
xem xét mã bên dưới, obj có thuộc tính num, sử dụng phương thức gọi, chúng ta có thể ràng buộc obj để thêm chức năng,
function Bike[model,color]{7
this.model = model,
this.color = color
}Bike.prototype.getDetails = function[]{
return this.model+" bike is "+this.color;
}
var bikeObj1 = new Bike[‘BMW’,’Black’];
var bikeObj2 = new Bike[‘BMW’,’white’];console.log[bikeObj1.getDetails[]]; //output: BMW bike is BLACK
console.log[bikeObj2.getDetails[]]; //output: BMW bike is WHITE
console.log[bikeObj1,bikeObj2] // attacheced below image as output
2. áp dụng phương pháp
Tương tự, phương thức Áp dụng cũng hoạt động nhưng sự khác biệt duy nhất là sử dụng phương thức áp dụng, các đối số truyền vào có thể là một mảng, hãy tham khảo mã bên dưới
3. Phương pháp ràng buộc
phương thức liên kết trả về một thể hiện phương thức thay vì giá trị kết quả, sau đó cần thực thi một phương thức liên kết với các đối số
Trong Đoạn mã trên, giải thích đơn giản cách sử dụng phương thức gọi/Áp dụng/Ràng buộc với một đối số
11. Đa hình trong JavaScriptĐa hình là một trong những nguyên lý của Lập trình hướng đối tượng [OOP]. Đó là cách thiết kế các đối tượng để chia sẻ các hành vi và có thể ghi đè các hành vi được chia sẻ bằng các hành vi cụ thể. Tính đa hình tận dụng tính kế thừa để thực hiện điều này
hãy xem mã mẫu để ghi đè một hàm trong JavaScript
function Bike[model,color]{8
this.model = model,
this.color = color
}Bike.prototype.getDetails = function[]{
return this.model+" bike is "+this.color;
}
var bikeObj1 = new Bike[‘BMW’,’Black’];
var bikeObj2 = new Bike[‘BMW’,’white’];console.log[bikeObj1.getDetails[]]; //output: BMW bike is BLACK
console.log[bikeObj2.getDetails[]]; //output: BMW bike is WHITE
console.log[bikeObj1,bikeObj2] // attacheced below image as output
Trong phương thức dựa trên nguyên mẫu chương trình đơn giản ở trên cho hàm tạo của Nhân viên phải ghi đè bởi một hàm nguyên mẫu khác khi trả về Tên dưới dạng chữ hoa
Vì vậy, chúng ta có thể ghi đè một hàm trong các Phạm vi khác nhau và cũng có thể nạp chồng phương thức, JS không có nạp chồng phương thức gốc nhưng chúng ta vẫn có thể đạt được
Vẫn còn một số khái niệm còn tồn tại, tất cả đều là Nạp chồng phương thức, Trừu tượng hóa, Kế thừa trong JavaScript
12. J không đồng bộTrong JavaScript Đồng bộ và không đồng bộ là Mẫu thực thi mã,
Trong JavaScript Mã thực thi được thực hiện bằng hai cách riêng biệt
- Công cụ JS trình duyệt [Công cụ JS V8 phổ biến]
- Công cụ NodeJs V8
Trình duyệt JS Engine phân tích tệp Html và thực thi JavaScript theo ba mẫu,
- đồng bộ
- không đồng bộ
- hoãn lại
function Bike[model,color]{9
this.model = model,
this.color = color
}Bike.prototype.getDetails = function[]{
return this.model+" bike is "+this.color;
}
var bikeObj1 = new Bike[‘BMW’,’Black’];
var bikeObj2 = new Bike[‘BMW’,’white’];console.log[bikeObj1.getDetails[]]; //output: BMW bike is BLACK
console.log[bikeObj2.getDetails[]]; //output: BMW bike is WHITE
console.log[bikeObj1,bikeObj2] // attacheced below image as output
while browser JS Engine parsing HTML file if tag occurs means there will be blocking, so how it gets execute JavaScript Code for that above three patterns.
- If synchronous tag occurs, JS engine will download the code and execute that code and after that only parsing the below HTML code, generally Synchronous is a blocking script execution.
- If Asynchronous tag occurs, while downloading the code JS engine will parse the HTML and once If JS code gets downloaded pause the parsing and back into the JS Code Execution, generally Asynchronous is a Non-blocking script execution.
- If Asynchronous tag occurs, JS Engine will parse the all HTML code and after that only executes the JS Code,
Công cụ NodeJS V8
Công cụ NodeJS V8 thực thi Mã JavaScript của nó dưới dạng một luồng dựa trên vòng lặp Sự kiện. …. biết thêm về thực thi NodeJS từ các liên kết bên dưới
Vòng lặp sự kiện và NodeJS
Mô hình đồng bộ và không đồng bộ
13. Chức năng gọi lạiĐịnh nghĩa chức năng gọi lại
Tham chiếu đến mã thực thi hoặc một đoạn mã thực thi được chuyển dưới dạng đối số cho mã khác
Từ định nghĩa trên, hàm gọi lại là một hàm được truyền vào một hàm khác dưới dạng đối số, sau đó được gọi bên trong hàm bên ngoài để hoàn thành một số loại quy trình hoặc hành động
console.log[bikeObj1.__proto__ === Bike.prototype ];//output : true0
Trong chương trình ab ở trên này, lời chào của hàm được truyền dưới dạng đối số cho hàm processUserInput, vì vậy tôi hy vọng bây giờ bạn đã hiểu hàm gọi lại trong JavaScript
14. Hiểu lời hứaĐịnh nghĩa lời hứa
Đối tượng
console.log[bikeObj1.__proto__ === Bike.prototype ];//output : true90 đại diện cho việc hoàn thành [hoặc lỗi] cuối cùng của một hoạt động không đồng bộ và giá trị kết quả của nó
Một lời hứa đại diện cho kết quả của chức năng không đồng bộ. Lời hứa có thể được sử dụng để tránh gọi lại chuỗi. Trong JavaScript,
vì vậy, bất cứ khi nào mã JavaScript thực thi không đồng bộ, cần xử lý một thao tác như một trong những cách sẽ sử dụng lời hứa
Lời hứa, đã xuất hiện khá lâu và được xác định bởi một thông số kỹ thuật có tên là Promise/A+. ES6 đã áp dụng thông số kỹ thuật này để triển khai Promise;
Một
console.log[bikeObj1.__proto__ === Bike.prototype ];//output : true91 đang ở một trong những tiểu bang này
- chưa giải quyết. trạng thái ban đầu, không hoàn thành cũng không bị từ chối
- hoàn thành. có nghĩa là hoạt động hoàn thành thành công
- vật bị loại bỏ. có nghĩa là hoạt động thất bại
console.log[bikeObj1.__proto__ === Bike.prototype ];//output : true1
xem xét đoạn mã trên cho một lời hứa mẫu giả định giống như thực hiện Thao tác DB một cách không đồng bộ, Trong lời hứa đó, các đối số Đối tượng là hai chức năng giải quyết và từ chối,
bất cứ khi nào chúng tôi thực hiện lời hứa đó bằng cách sử dụng. thì[] và. catch[] làm chức năng gọi lại Để nhận các giá trị giải quyết hoặc từ chối
Để tìm hiểu thêm về Promise
15. Không đồng bộ & Đang chờBabel hiện hỗ trợ async/await ngay lập tức và ES2016 [hoặc ES7] sắp ra mắt, async & await về cơ bản chỉ là đường cú pháp trên Promise, chỉ riêng hai từ khóa này sẽ khiến việc viết mã không đồng bộ trong Node trở nên dễ chịu hơn nhiều
Trong JavaScript Mẫu không đồng bộ được xử lý trong các phiên bản khác nhau,
ES5 -> Gọi lại
ES6 -> Lời hứa
ES7 -> không đồng bộ & đang chờ
Tuy nhiên, điều mà nhiều người có thể đã bỏ qua là toàn bộ nền tảng của async/await là những lời hứa. Trên thực tế, mọi hàm async bạn viết sẽ trả về một lời hứa và mọi thứ bạn chờ đợi thường sẽ là một lời hứa
console.log[bikeObj1.__proto__ === Bike.prototype ];//output : true2
Mã trên cho một async và chờ đợi đơn giản,
Tốt, async/await là một cải tiến cú pháp tuyệt vời cho cả lập trình viên nodejs và trình duyệt. So với Promises, đó là một con đường tắt để đến cùng một đích. Nó giúp nhà phát triển triển khai lập trình chức năng trong JavaScript và tăng khả năng đọc mã, làm cho JavaScript trở nên thú vị hơn
Để hiểu về Async Await, bạn chỉ cần hiểu về promise
Trong Async & Await nhiều thứ khác ở đó, Chỉ cần chơi xung quanh nó
phần kết luậnCho đến nay, trong bài đăng này, chúng tôi đã đề cập đến nhiều khái niệm quan trọng trong JavaScript và có phần Giới thiệu về nó. Nói chung, đối với mỗi khái niệm, chỉ cần cung cấp một mã mẫu để hiểu các khái niệm
Đây là bảng mã API JavaScript dành cho nhà phát triển giao diện người dùng http. //overapi. com/javascript,
Nguồn hình ảnh từ http. //overapi. com/javascript
Vì vậy, bạn có thể nhận được nhiều nội dung hơn và chơi xung quanh từng khái niệm
Tôi vừa xem qua phần Giới thiệu về tất cả các khái niệm, vì vậy nếu bạn có bất kỳ câu hỏi nào, Chỉ cần hỏi trong phần phản hồi