Bảng mã JavaScript ES6 pdf
5 là 6 mới. Các hằng số hoạt động giống như 5, nhưng không thể gán lại. Nhìn thấy. Show
Tài liệu này là một tài liệu dành cho JavaScript mà bạn sẽ thường gặp trong các dự án hiện đại và hầu hết các mã mẫu hiện đại Hướng dẫn này không nhằm dạy bạn JavaScript từ đầu, mà để giúp các nhà phát triển có kiến thức cơ bản, những người có thể gặp khó khăn trong việc làm quen với các cơ sở mã hiện đại (hoặc giả sử học React chẳng hạn) vì các khái niệm JavaScript được sử dụng Bên cạnh đó, đôi khi tôi sẽ cung cấp các mẹo cá nhân có thể gây tranh cãi nhưng sẽ lưu ý rằng đó là đề xuất cá nhân khi tôi làm như vậy
Tài nguyên bổ sungKhi bạn đấu tranh để hiểu một khái niệm, tôi khuyên bạn nên tìm kiếm câu trả lời trên các nguồn sau Mục lụcquan niệmSự định nghĩa biến. var, const, hãy đểTrong JavaScript, có sẵn ba từ khóa để khai báo một biến và mỗi từ khóa đều có sự khác biệt của nó. Đó là 5, 6 và 7giải thích ngắnCác biến được khai báo với từ khóa 7 không thể được chỉ định lại, trong khi 6 và 5 có thểTôi khuyên bạn nên luôn khai báo các biến của mình với ____3_______7 theo mặc định, nhưng với ____3_______6 nếu đó là một biến mà bạn cần thay đổi hoặc gán lại sau này mã mẫu
Lời giải chi tiếtBiến của một biến đại khái có nghĩa là “biến này có sẵn ở đâu trong mã” var 5 biến được khai báo là phạm vi chức năng, nghĩa là khi một biến được tạo trong một hàm, mọi thứ trong hàm đó đều có thể truy cập vào biến đó. Ngoài ra, không thể truy cập một biến phạm vi chức năng được tạo trong một chức năng bên ngoài chức năng nàyTôi khuyên bạn nên hình dung nó như thể một biến trong phạm vi X có nghĩa là biến này là một thuộc tính của X
Vẫn tập trung vào phạm vi biến, đây là một ví dụ tinh tế hơn
Ngoài ra, các biến được khai báo var được chuyển lên đầu phạm vi khi thực thi. Đây là những gì chúng ta gọi Phần mã này
được hiểu khi thực hiện như
cho phép 5 và 6 gần giống nhau, nhưng biến khai báo 6
Hãy xem tác động của phạm vi khối lấy ví dụ trước của chúng tôi
Bây giờ, ý nghĩa của việc biến let (và const) không thể truy cập được trước khi được gán
Ngược lại với các biến var, nếu bạn cố gắng đọc hoặc viết trên một biến let hoặc const trước khi chúng được gán thì một lỗi sẽ xuất hiện. Hiện tượng này thường được gọi là hoặc TDZ
Ngoài ra, bạn không thể khai báo lại biến let
hằng số 7 các biến đã khai báo hoạt động giống như các biến let, nhưng chúng cũng không thể được gán lạiTóm lại, các biến const
0Nhưng có một sự tinh tế. 7 biến không. Cụ thể, điều đó có nghĩa là các biến được khai báo của đối tượng và mảng 7 có thể bị thay đổiĐối với các đối tượng 1Đối với mảng 2tài nguyên bên ngoàichức năng mũi tênBản cập nhật JavaScript ES6 đã giới thiệu các hàm mũi tên, đây là một cách khác để khai báo và sử dụng các hàm. Dưới đây là những lợi ích mà chúng mang lại
mã mẫu
3 4Trong một hàm mũi tên, giá trị này bằng với giá trị này của bối cảnh thực thi kèm theo. Về cơ bản, với arrow functions, bạn không cần phải làm thủ thuật “that = this” trước khi gọi một hàm bên trong một hàm nữa 5Lời giải chi tiếtsúc tíchCác hàm mũi tên ngắn gọn hơn các hàm truyền thống theo nhiều cách. Hãy xem xét tất cả các trường hợp có thể
Trả về rõ ràng là một hàm trong đó từ khóa trả về được sử dụng trong phần thân của nó 6Theo cách viết hàm truyền thống, trả về luôn rõ ràng. Nhưng với các hàm mũi tên, bạn có thể thực hiện trả về ngầm định, điều đó có nghĩa là bạn không cần sử dụng từ khóa return để trả về một giá trị 7Vì chức năng này chỉ trả về một cái gì đó (không có hướng dẫn trước từ khóa trả về), chúng tôi có thể thực hiện trả về ngầm định 8Để làm như vậy, chúng ta chỉ cần bỏ dấu ngoặc và từ khóa return. Đó là lý do tại sao nó được gọi là trả về ngầm định, không có từ khóa trả về, nhưng hàm này thực sự sẽ trả về 10
Ngoài ra, nếu bạn muốn trả về một đối tượng hoàn toàn, bạn phải có dấu ngoặc đơn xung quanh nó vì nó sẽ xung đột với dấu ngoặc nhọn 9Nếu hàm của bạn chỉ nhận một tham số, bạn có thể bỏ qua dấu ngoặc đơn xung quanh nó. Nếu chúng tôi lấy lại mã kép ở trên 0Dấu ngoặc đơn xung quanh tham số có thể tránh được 1Khi không có đối số nào được cung cấp cho hàm mũi tên, bạn cần cung cấp dấu ngoặc đơn, nếu không cú pháp sẽ không hợp lệ 2 3tài liệu tham khảo nàyĐể hiểu sự tinh tế này được giới thiệu với các hàm mũi tên, bạn phải biết cách hoạt động trong JavaScript Trong một hàm mũi tên, giá trị này bằng với giá trị này của bối cảnh thực thi kèm theo. Điều đó có nghĩa là một hàm mũi tên không tạo cái này mới, thay vào đó, nó lấy nó từ xung quanh nó Không có arrow function, nếu bạn muốn truy cập một biến từ this trong một hàm bên trong một hàm, bạn phải sử dụng thủ thuật that = this hoặc self = this Chẳng hạn, sử dụng hàm setTimeout bên trong myFunc 4Nhưng với chức năng mũi tên, cái này được lấy từ xung quanh nó 5tài nguyên hữu íchGiá trị tham số mặc định của hàmBắt đầu từ bản cập nhật JavaScript ES2015, bạn có thể đặt giá trị mặc định cho các tham số chức năng của mình bằng cú pháp sau 6Tham số mặc định được áp dụng trong hai và chỉ hai trường hợp
Nói cách khác, nếu bạn truyền null thì tham số mặc định sẽ không được áp dụng
tài nguyên bên ngoàiPhá hủy các đối tượng và mảngPhá hủy là một cách thuận tiện để tạo các biến mới bằng cách trích xuất một số giá trị từ dữ liệu được lưu trữ trong các đối tượng hoặc mảng Để đặt tên cho một vài trường hợp sử dụng, việc hủy cấu trúc có thể được sử dụng để hủy cấu trúc các tham số chức năng hoặc điều này. props trong các dự án React chẳng hạn Giải thích với mã mẫuHãy xem xét đối tượng sau cho tất cả các mẫu 7Không phá hủy 8Với phá hủy, tất cả trong một dòng 9Ghi chú. Trong 11, dấu ngoặc sau từ khóa const không được sử dụng để khai báo một đối tượng hay một khối mà là cú pháp phá hủyHủy cấu trúc thường được sử dụng để hủy cấu trúc các tham số của đối tượng trong các hàm Không phá hủy 0Khi phá hủy tham số đối tượng person, chúng ta có một hàm ngắn gọn hơn 1Việc hủy cấu trúc thậm chí còn dễ chịu hơn khi sử dụng với 2Hãy xem xét mảng sau 3Không phá hủy 4Với phá hủy 5tài nguyên hữu íchCác phương thức mảng - ánh xạ/lọc/giảm/tìmÁnh xạ, lọc, rút gọn và tìm là các phương thức mảng đến từ một mô hình lập trình có tên là lập trình chức năng Tóm lại
Tôi khuyên bạn nên sử dụng chúng càng nhiều càng tốt theo các nguyên tắc lập trình chức năng vì chúng có thể kết hợp được, ngắn gọn và thanh lịch Với bốn phương thức đó, bạn có thể tránh sử dụng các vòng lặp for và forEach trong hầu hết các trường hợp. Khi bạn muốn thực hiện một vòng lặp for, hãy thử thực hiện với bản đồ, bộ lọc, thu gọn và tìm tổng hợp. Ban đầu, bạn có thể gặp khó khăn khi thực hiện vì nó yêu cầu bạn học cách suy nghĩ mới, nhưng khi bạn đã hiểu thì mọi thứ sẽ trở nên dễ dàng hơn. mã mẫu 6Tính tổng điểm cho học sinh từ lớp 10 trở lên bằng cách soạn bản đồ, lọc và rút gọn 7Giải trìnhHãy xem xét mảng số sau đây cho các ví dụ của chúng tôi 8Mảng. nguyên mẫu. bản đồ() 9Điều gì đang xảy ra ở đây? . bản đồ trên mảng số, bản đồ đang lặp lại trên từng phần tử của mảng và chuyển nó vào hàm của chúng tôi. Mục tiêu của hàm là tạo và trả về một giá trị mới từ giá trị được truyền để bản đồ có thể thay thế nó Hãy trích xuất chức năng này để làm cho nó rõ ràng hơn, chỉ cho điều này một lần 0Ghi chú. Bạn sẽ thường xuyên gặp phải phương pháp này được sử dụng kết hợp với 1 12 tạo ra 13 bằng với 14
Mảng. nguyên mẫu. lọc() 2Ghi chú. Bạn sẽ thường xuyên gặp phải phương pháp này được sử dụng kết hợp với 3Chúng tôi đang sử dụng. bộ lọc trên mảng số, bộ lọc đang lặp lại trên từng phần tử của mảng và chuyển nó vào hàm của chúng ta. Mục tiêu của hàm là trả về một boolean sẽ xác định xem giá trị hiện tại có được giữ hay không. Bộ lọc sau đó trả về mảng chỉ với các giá trị được lưu giữ Mảng. nguyên mẫu. giảm bớt()Mục tiêu của phương thức rút gọn là giảm tất cả các phần tử của mảng mà nó lặp lại thành một giá trị duy nhất. Cách nó tổng hợp các yếu tố đó tùy thuộc vào bạn 4Ghi chú. Bạn sẽ thường xuyên gặp phải phương pháp này được sử dụng kết hợp với 5Cũng giống như cho. bản đồ và. phương pháp lọc,. reduce được áp dụng trên một mảng và lấy một hàm làm tham số đầu tiên Tuy nhiên, lần này, có những thay đổi
Tham số đầu tiên là một hàm sẽ được gọi ở mỗi bước lặp Tham số thứ hai là giá trị của biến tích lũy (acc ở đây) ở bước lặp đầu tiên (đọc tiếp để hiểu) Hàm bạn chuyển làm tham số đầu tiên của. reduce nhận hai tham số. Tham số đầu tiên (acc ở đây) là biến tích lũy, trong khi tham số thứ hai (n) là phần tử hiện tại Biến bộ tích lũy bằng với giá trị trả về của hàm của bạn ở bước lặp trước đó. Ở bước đầu tiên của quá trình lặp lại, acc bằng với giá trị bạn đã chuyển thành. giảm tham số thứ hai Ở bước lặp đầu tiên 15 vì chúng tôi đã chuyển 0 làm tham số thứ hai để giảm 16 phần tử đầu tiên của mảng sốHàm trả về acc + n –> 0 + 0 –> 0 Tại bước lặp thứ hai 15 vì đó là giá trị mà hàm trả về ở bước lặp trước đó 18 phần tử thứ hai của mảng sốHàm trả về acc + n –> 0 + 1 –> 1 Ở bước lặp thứ ba 19 vì đó là giá trị mà hàm trả về ở bước lặp trước đó 20 phần tử thứ ba của mảng sốHàm trả về acc + n –> 1 + 2 –> 3 Ở bước lặp thứ tư 21 vì đó là giá trị mà hàm trả về ở bước lặp trước đó 22 phần tử thứ tư của mảng sốHàm trả về acc + n –> 3 + 3 –> 6 […] Ở bước lặp cuối cùng 23 vì đó là giá trị mà hàm trả về ở bước lặp trước đó 24 phần tử cuối cùng của mảng sốHàm trả về acc + n –> 15 + 6 –> 21 Vì đây là bước lặp cuối cùng nên. giảm lợi nhuận 21 Mảng. nguyên mẫu. tìm thấy() 6Ghi chú. Bạn sẽ thường xuyên gặp phải phương pháp này được sử dụng kết hợp với Chúng tôi đang sử dụng. tìm trên mảng số,. find đang lặp lại trên từng phần tử của mảng và chuyển nó vào hàm của chúng ta, cho đến khi điều kiện được đáp ứng. Mục tiêu của hàm là trả về phần tử thỏa mãn chức năng kiểm tra hiện tại. Các. phương thức find thực thi hàm gọi lại một lần cho mỗi chỉ mục của mảng cho đến khi hàm gọi lại trả về giá trị trung thực Ghi chú. Nó ngay lập tức trả về giá trị của phần tử đó (thỏa mãn điều kiện) nếu tìm thấy. Nếu không, trả về không xác định Tài nguyên bên ngoàiToán tử trải rộng “…”Toán tử trải rộng 25 đã được giới thiệu với ES2015 và được sử dụng để mở rộng các phần tử của một lần lặp (như một mảng) vào những nơi mà nhiều phần tử có thể phù hợpmã mẫu 7 8 9Giải trìnhTrong iterables (như mảng)Nếu chúng ta có hai mảng sau 0mảng 2 phần tử đầu tiên là một mảng vì mảng 1 được thêm nguyên trạng vào mảng 2. Nhưng những gì chúng tôi muốn là arr2 là một mảng các chữ cái. Để làm như vậy, chúng ta có thể trải các phần tử của mảng1 sang mảng2 Với toán tử trải rộng 7Thông số nghỉ chức năngTrong các tham số của hàm, chúng ta có thể sử dụng toán tử còn lại để đưa các tham số vào một mảng mà chúng ta có thể lặp lại. Đã có một đối tượng đối số được liên kết với mọi hàm bằng một mảng gồm tất cả các tham số được truyền vào hàm 2Nhưng giả sử rằng chúng ta muốn hàm này tạo một học sinh mới với điểm của nó và điểm trung bình của nó. Sẽ không thuận tiện hơn nếu trích xuất hai tham số đầu tiên thành hai biến riêng biệt, sau đó có tất cả các điểm trong một mảng mà chúng ta có thể lặp lại? Đó chính xác là những gì toán tử còn lại cho phép chúng tôi làm 3
Trải rộng thuộc tính đối tượngĐối với phần này, tôi khuyên bạn nên đọc các giải thích trước đây về toán tử còn lại trên các tham số hàm và hàm lặp 4nguồn lực bên ngoàiViết tắt thuộc tính đối tượngKhi gán biến cho thuộc tính đối tượng, nếu tên biến trùng với tên thuộc tính, bạn có thể thực hiện như sau 5Giải trìnhThông thường (trước ES2015) khi bạn khai báo một đối tượng mới theo nghĩa đen và muốn sử dụng các biến làm giá trị thuộc tính đối tượng, bạn sẽ viết loại mã này 6Như bạn có thể thấy, điều này khá lặp đi lặp lại vì tên thuộc tính của myObj giống với tên biến mà bạn muốn gán cho các thuộc tính đó Với ES2015, khi tên biến trùng với tên thuộc tính, bạn có thể thực hiện cách viết tắt này 7nguồn lực bên ngoàilời hứaLời hứa là một đối tượng có thể được trả về đồng bộ từ hàm không đồng bộ () Các lời hứa có thể được sử dụng để tránh địa ngục gọi lại và chúng ngày càng được bắt gặp nhiều hơn trong các dự án JavaScript hiện đại mã mẫu 8Giải trìnhKhi bạn thực hiện một yêu cầu Ajax, phản hồi không đồng bộ vì bạn muốn một tài nguyên cần một thời gian để đến. Nó thậm chí có thể không bao giờ đến nếu tài nguyên bạn yêu cầu không có sẵn vì một số lý do (404) Để xử lý tình huống đó, ES2015 đã hứa với chúng tôi. Lời hứa có thể có ba trạng thái khác nhau Giả sử chúng ta muốn sử dụng lời hứa để xử lý yêu cầu Ajax để tìm nạp tài nguyên X Tạo lời hứaĐầu tiên chúng ta sẽ tạo ra một lời hứa. Chúng ta sẽ sử dụng phương thức get của jQuery để thực hiện yêu cầu Ajax tới X 9Như đã thấy trong ví dụ trên, đối tượng Promise nhận một hàm thực thi nhận hai tham số là giải quyết và từ chối. Các tham số đó là các hàm mà khi được gọi sẽ chuyển trạng thái đang chờ lời hứa sang trạng thái đã hoàn thành và bị từ chối tương ứng Lời hứa ở trạng thái chờ xử lý sau khi tạo cá thể và chức năng thực thi của nó được thực thi ngay lập tức. Khi một trong các chức năng giải quyết hoặc từ chối được gọi trong chức năng thực thi, lời hứa sẽ gọi các trình xử lý liên quan của nó Sử dụng trình xử lý lời hứaĐể có được kết quả của lời hứa (hoặc lỗi), chúng ta phải đính kèm với nó các trình xử lý bằng cách thực hiện như sau 0Nếu lời hứa thành công, giải pháp được thực thi và chức năng được truyền dưới dạng tham số 26 được thực thiNếu không thành công, từ chối được thực thi và chức năng được truyền dưới dạng tham số 27 được thực thi
Tài nguyên bên ngoàichữ mẫuChữ mẫu là một phép nội suy biểu thức cho các chuỗi đơn và nhiều dòng Nói cách khác, đó là một cú pháp chuỗi mới mà bạn có thể thuận tiện sử dụng bất kỳ biểu thức JavaScript nào (chẳng hạn như các biến) mã mẫu 1nguồn lực bên ngoàiChữ mẫu được gắn thẻThẻ mẫu là các chức năng có thể được thêm tiền tố vào một. Khi một hàm được gọi theo cách này, tham số đầu tiên là một mảng các chuỗi xuất hiện giữa các biến được nội suy của mẫu và các tham số tiếp theo là các giá trị được nội suy. Sử dụng toán tử trải rộng 25 để nắm bắt tất cả chúng.
Dưới đây là một ví dụ đồ chơi về cách chúng hoạt động 2Một ví dụ thú vị hơn 3nguồn lực bên ngoàiNhập khẩu / Xuất khẩuCác mô-đun ES6 được sử dụng để truy cập các biến hoặc hàm trong một mô-đun được xuất rõ ràng bởi các mô-đun mà nó nhập Tôi thực sự khuyên bạn nên xem các tài nguyên MDN khi nhập/xuất (xem các tài nguyên bên ngoài bên dưới), nó vừa đơn giản vừa đầy đủ Giải thích với mã mẫuxuất khẩu được đặt tênXuất khẩu được đặt tên được sử dụng để xuất một số giá trị từ một mô-đun
4Mặc dù nhập khẩu có tên trông giống như phá hủy, nhưng chúng có cú pháp khác và không giống nhau. Chúng không hỗ trợ các giá trị mặc định cũng như không phá hủy sâu Ngoài ra, bạn có thể tạo bí danh nhưng cú pháp khác với cú pháp được sử dụng trong việc phá hủy 5Nhập/xuất mặc địnhLiên quan đến xuất mặc định, chỉ có một xuất mặc định duy nhất cho mỗi mô-đun. Xuất mặc định có thể là một hàm, một lớp, một đối tượng hoặc bất kỳ thứ gì khác. Giá trị này được coi là giá trị xuất "chính" vì nó sẽ là giá trị nhập đơn giản nhất. 6xuất hàm 7nguồn lực bên ngoàiJavaScript nàytoán tử này hoạt động khác với các ngôn ngữ khác và trong hầu hết các trường hợp được xác định bởi cách một hàm được gọi. (Tham khảo. MĐN) Khái niệm này có nhiều điểm tinh tế và khá khó, tôi thực sự khuyên bạn nên tìm hiểu sâu về các nguồn bên ngoài bên dưới. Vì vậy, tôi sẽ cung cấp những gì cá nhân tôi nghĩ để xác định cái này bằng. Tôi đã học được mẹo này từ bài viết này được viết bởi Yehuda Katz 8 9nguồn lực bên ngoàiLớp họcJavaScript là ngôn ngữ dựa trên nguyên mẫu (ví dụ như Java là ngôn ngữ dựa trên lớp). ES6 đã giới thiệu các lớp JavaScript có nghĩa là một đường cú pháp cho kế thừa dựa trên nguyên mẫu và không phải là mô hình kế thừa dựa trên lớp mới (tham khảo) Lớp từ thực sự dễ bị lỗi nếu bạn đã quen thuộc với các lớp trong các ngôn ngữ khác. Nếu bạn làm như vậy, hãy tránh giả định cách các lớp JavaScript hoạt động trên cơ sở này và coi đó là một khái niệm hoàn toàn khác Vì tài liệu này không phải là một nỗ lực để dạy bạn ngôn ngữ từ đầu, tôi sẽ cho rằng bạn biết nguyên mẫu là gì và cách chúng hoạt động. Nếu không, hãy xem các tài nguyên bên ngoài được liệt kê bên dưới mã mẫu MẫuTrước ES6, cú pháp nguyên mẫu 0Với cú pháp lớp ES6 1nguồn lực bên ngoàiĐể hiểu nguyên mẫu Đối với các lớp hiểu let person = "Nick"; person = "John"; console.log(person) // "John", reassignment is allowed with let 29 và let person = "Nick"; person = "John"; console.log(person) // "John", reassignment is allowed with let 30 từ khóaTừ khóa 31 được sử dụng trong khai báo lớp hoặc biểu thức lớp để tạo một lớp là con của một lớp khác (Tham khảo. MĐN). Lớp con kế thừa tất cả các thuộc tính của lớp cha và ngoài ra có thể thêm các thuộc tính mới hoặc sửa đổi các thuộc tính được kế thừaTừ khóa 30 được sử dụng để gọi các hàm trên cha của đối tượng, bao gồm cả hàm tạo của nó
Mã mẫu 2Ghi chú. Nếu chúng tôi đã cố gắng sử dụng 34 trước khi gọi 35 trong lớp Square, ReferenceError sẽ được đưa ra 3Tài nguyên bên ngoàiĐang chờ không đồng bộNgoài ra, có một cú pháp mới mà bạn có thể gặp phải để xử lý mã không đồng bộ có tên là async/await Mục đích của các chức năng async/await là để đơn giản hóa hành vi sử dụng các lời hứa một cách đồng bộ và thực hiện một số hành vi trên một nhóm Lời hứa. Giống như Lời hứa tương tự như cuộc gọi lại có cấu trúc, async/await tương tự như việc kết hợp trình tạo và lời hứa. Các chức năng không đồng bộ luôn trả về một Lời hứa. (Tham khảo. MĐN)
mã mẫu 4Giải thích với mã mẫuAsync/Await được xây dựng dựa trên các lời hứa nhưng chúng cho phép một kiểu mã bắt buộc hơn Toán tử async đánh dấu một hàm là không đồng bộ và sẽ luôn trả về một Lời hứa. Bạn có thể sử dụng toán tử chờ trong hàm không đồng bộ để tạm dừng thực thi trên dòng đó cho đến khi Lời hứa được trả về từ biểu thức giải quyết hoặc từ chối 5Khi đạt đến câu lệnh trả về của hàm không đồng bộ, Lời hứa được thực hiện với giá trị được trả về. Nếu xảy ra lỗi bên trong chức năng không đồng bộ, trạng thái Promise sẽ chuyển sang bị từ chối. Nếu không có giá trị nào được trả về từ hàm async, thì Promise vẫn được trả về và không có giá trị khi thực thi hàm async hoàn tất toán tử chờ đợi được sử dụng để chờ Lời hứa được thực hiện và chỉ có thể được sử dụng bên trong thân hàm async. Khi gặp phải, việc thực thi mã bị tạm dừng cho đến khi lời hứa được thực hiện
Trước tiên, hãy xem cách chúng tôi có thể tìm nạp người dùng github bằng lời hứa 6Đây là tương đương async/await 7cú pháp async/await đặc biệt thuận tiện khi bạn cần xâu chuỗi các lời hứa phụ thuộc lẫn nhau Chẳng hạn, nếu bạn cần lấy mã thông báo để có thể tìm nạp một bài đăng blog trên cơ sở dữ liệu và sau đó là thông tin tác giả
8xử lý lỗiTrừ khi chúng tôi thêm các khối thử / bắt xung quanh các biểu thức đang chờ, các ngoại lệ chưa được bắt – bất kể chúng được ném vào phần thân của hàm async của bạn hay trong khi nó bị treo trong khi chờ – sẽ từ chối lời hứa được trả về bởi hàm async. Sử dụng câu lệnh 41 trong hàm không đồng bộ cũng giống như trả về một Lời hứa từ chối.
Với những lời hứa, đây là cách bạn sẽ xử lý chuỗi lỗi 9Tương đương với async/await 0nguồn lực bên ngoàiSự thật / Giả dốiTrong JavaScript, giá trị true hoặc false là giá trị được chuyển thành kiểu boolean khi được đánh giá trong ngữ cảnh boolean. Một ví dụ về bối cảnh boolean sẽ là việc đánh giá một điều kiện 42Mọi giá trị sẽ được chuyển thành 43 trừ khi chúng bằng
Dưới đây là các ví dụ về bối cảnh boolean 50 có thể là bất kỳ công dân hạng nhất nào (biến, hàm, boolean) nhưng nó sẽ được chuyển thành boolean vì nó được đánh giá trong ngữ cảnh boolean
Toán tử này trả về false nếu toán hạng đơn của nó có thể được chuyển đổi thành true; 1
2myVar được đánh giá trong ngữ cảnh boolean Hãy cẩn thận khi so sánh 2 giá trị. Các giá trị đối tượng (nên được chuyển thành true) không được chuyển thành Boolean nhưng nó buộc phải chuyển đổi thành một giá trị nguyên thủy bằng cách sử dụng đặc tả ToPrimitives. Bên trong, khi một đối tượng được so sánh với giá trị Boolean như 52, thì nó sẽ là 53 nên… 3nguồn lực bên ngoàiAnamorphisms và Catamorphismsbiến hìnhBiến hình là các hàm ánh xạ từ một đối tượng nào đó sang một cấu trúc phức tạp hơn có chứa loại đối tượng. Đó là quá trình mở ra một cấu trúc đơn giản thành một cấu trúc phức tạp hơn. Xem xét mở một số nguyên thành một danh sách các số nguyên. Số nguyên là đối tượng ban đầu của chúng tôi và danh sách các số nguyên là cấu trúc phức tạp hơn mã mẫu 4Catamorphism trái ngược với Anamorphisms, ở chỗ chúng lấy các đối tượng có cấu trúc phức tạp hơn và gấp chúng thành các cấu trúc đơn giản hơn. Lấy ví dụ sau 54 lấy danh sách các số nguyên và trả về một số nguyênmã mẫu 5nguồn lực bên ngoàimáy phát điệnMột cách khác để viết hàm 55 là sử dụng Trình tạo. Để khởi tạo một đối tượng 56, ta phải sử dụng khai báo 57. Trình tạo là các chức năng có thể được thoát và sau đó được nhập lại với ngữ cảnh của nó (các ràng buộc biến) được lưu trong các lần truy cập lạiVí dụ: hàm 55 ở trên có thể được viết lại thành 6Trình tạo trả về một đối tượng có thể lặp lại. Khi hàm 59 của trình vòng lặp được gọi, nó được thực thi cho đến khi biểu thức 60 đầu tiên chỉ định giá trị được trả về từ trình vòng lặp hoặc với 61, biểu thức này ủy quyền cho một hàm tạo khác. Khi một biểu thức 62 được gọi trong trình tạo, nó sẽ đánh dấu trình tạo là xong và trả lại dưới dạng giá trị trả về. Các cuộc gọi tiếp theo tới 59 sẽ không trả về bất kỳ giá trị mới nàomã mẫu 7Biểu thức 61 cho phép trình tạo gọi một hàm tạo khác trong quá trình lặp 8 9nguồn lực bên ngoàiPhương thức tĩnhgiải thích ngắnTừ khóa 65 được sử dụng trong các lớp để khai báo các phương thức tĩnh. Các phương thức tĩnh là các hàm trong một lớp thuộc về đối tượng lớp và không có sẵn cho bất kỳ phiên bản nào của lớp đómã mẫu 0Lời giải chi tiếtCác phương thức tĩnh có thể được gọi bên trong một phương thức tĩnh khác bằng cách sử dụng từ khóa 34, mặc dù điều này không hoạt động đối với các phương thức không tĩnh. Các phương thức không tĩnh không thể truy cập trực tiếp các phương thức tĩnh bằng từ khóa 34Gọi các phương thức tĩnh khác từ một phương thức tĩnhĐể gọi một phương thức tĩnh từ một phương thức tĩnh khác, từ khóa 34 có thể được sử dụng như vậy; 1Gọi các phương thức tĩnh từ các phương thức không tĩnhCác phương thức không tĩnh có thể gọi các phương thức tĩnh theo 2 cách; Để có quyền truy cập vào một phương thức tĩnh từ một phương thức không tĩnh, chúng tôi sử dụng tên lớp và gọi phương thức tĩnh như một thuộc tính. e. g 69 2Các phương thức tĩnh có thể được gọi là thuộc tính trên đối tượng hàm tạo 3nguồn lực bên ngoàiBảng chú giảiPhạm viBối cảnh trong đó các giá trị và biểu thức "hiển thị" hoặc có thể được tham chiếu. Nếu một biến hoặc biểu thức khác không nằm trong phạm vi hiện tại, thì nó không có sẵn để sử dụng 5 tính năng mới trong ES6 là gì?Các tính năng mới trong ES6 . từ khóa cho phép từ khóa const Hàm mũi tên Các. Nhà điều hành cho/của đối tượng bản đồ Đặt đối tượng Các lớp học ES6 và JavaScript có giống nhau không?JavaScript ES6 (còn được gọi là ECMAScript 2015 hoặc ECMAScript 6) là phiên bản JavaScript mới hơn được giới thiệu vào năm 2015. ECMAScript là tiêu chuẩn mà ngôn ngữ lập trình JavaScript sử dụng. ECMAScript cung cấp thông số kỹ thuật về cách thức hoạt động của ngôn ngữ lập trình JavaScript
Cú pháp JavaScript ES6 là gì?JavaScript ES6 mang đến cú pháp mới và các tính năng tuyệt vời mới để làm cho mã của bạn hiện đại hơn và dễ đọc hơn. Nó cho phép bạn viết ít mã hơn và làm được nhiều việc hơn . ES6 giới thiệu cho chúng ta nhiều tính năng tuyệt vời như chức năng mũi tên, chuỗi mẫu, hủy lớp, Mô-đun… và hơn thế nữa.
Các tính năng chính của ES6 là gì?10 tính năng hàng đầu của ES6 . từ khóa let và const Hàm mũi tên Chuỗi nhiều dòng Thông số mặc định chữ mẫu Nhiệm vụ phá hủy Văn bản đối tượng nâng cao lời hứa |