Promise.all, Promise.race, Promise.any và Promise.allSettled. Trong bài viết chúng ta sẽ đi tìm hiểu về các tính năng promise trong javascript.
Promise allSettled sau được đề cử thì ES2020 đã chính thức phát hành để sử dụng chúng. Những developer nào đã từng promise.allsettled is not a function giờ đây sẽ không cần tìm kiếm câu trả lời nữa đâu. Và bài post này sẽ giới thiệu ngắn gọn về method Promise.allSettled()
Promise.all là gì? Tất cả những gì bạn biết về Promise.all là gì? Bạn đã dùng Promise.all khi nào? Performance khi dùng Promise.all thế nào? Những câu hỏi này, chúng ta sẽ cùng thảo luận trong bài viết này. Hy vọng, bạn có thể làm nhiều thứ hơn khi đọc xong bài viết này
Promise là gì? Khi nào sử dụng Promise ? Ở phần trước, chúng ta đã nói về callback là gì? Và trong bài viết này, chúng ta sẽ làm rõ vấn đề này thông qua những ví dụ hay xảy ra trong lập trình javascript.
Nói đến promises và callbacks thì tôi nghĩ bay giờ ai cũng biết về hai khái niệm này rồi. Nhưng khổ một nỗi là sử dụng Promises (or async/await) quen rồi nên khi gặp lại callbacks cảm thấy không sướng chút nào? Vì thật dễ dàng khi sử dụng promises so với callbacks. Nhưng rất tiếc khi các bạn nào làm nhiều ở Node thì đa số các API của Node vẫn còn đang xài callbacks, vậy làm sao chuyển callbacks qua promises. Hôm nay, mình sẽ show cho anh em devjs convert callbacks to promises.
Promise javascript ra đời kể từ khi ES6 (ECMAScript 2015) chính thức giới thiệu, nhưng đến bây giờ việc sử dụng Serial Promise hay parallel Promise vẫn còn một số vấn đề mà còn nhiều developers vẫn chưa biết tận dụng hết khả năng của Promise.all(). Vậy trong bài viết này chúng tôi sẽ giới thiệu lại một lần nữa thông qua những ví dụ cụ thể.
Promise javascript cung cấp nhiều loại quá anh em ơi. Cách đây 1 mùa tết thì ES2021 có giới thiệu những tính năng mới cho cộng động các nhà phát triển javascript. Trong đó có một tính năng mà lúc đầu tôi nghĩ đó là dư thừa đó là Promise.any()
Sử dụng Promise thì tất cả chúng ta đều biết Promise không hỗ trợ về Timeouts. Điều đó có nghĩa là nếu như thời gian phản hồi một yêu cầu nào đó chậm, thì người dùng cũng không biết xử lý làm sao?
Promise all là một phương thức không thể thiếu trong lập trình đồng bộ đối với lập trình viên. Vẫn biết rằng Promise được sử dụng rất rộng rãi nhưng vẫn còn đâu đó những developers vẫn chưa biết vì sao Promise all lại được sủ dụng nhiều như vậy. Bài viết này sẽ làm sáng tỏ những tình huống mà bạn nên sử dụng Promise.
Promise Javascript trong bài viết này sẽ nói đến một tình huống rất gần gũi với chúng ta. Thông qua hai việc đó là đi nhậu và dẫn người yêu đi ăn gà KFC là bạn có thể hiểu về lập trình đồng bộ trong Javascript.
Hiện tại giao tiếp không đồng bộ với máy chủ là một yêu cầu phổ biến. Tuy nhiên, khi cần gửi nhiều yêu cầu cùng lúc, nếu không được kiểm soát có thể khiến máy chủ tải quá mức và ảnh hưởng đến hiệu suất ứng dụng.
<p>Vậy câu hỏi đặt ra ở đây nhé: Nếu có async/await rồi thì Promise có còn lỗi thời? không cần thiết dùng đến hay không? Ở bài tiếp theo tôi sẽ cho các bạn câu trả lời mà hầu hết các LTV đều có thể chưa có câu trả lời rõ ràng hoặc chưa phân biệt được khi nào sử dụng hai loại đó. Và quan trọng hơn là lúc nào sử dụng async/await hay promise để đạt hiệu suất tối ưu.</p>
Promise và async-await những khái niệm không còn xa lạ gì nữa đối với devjs hiện nay, bởi vì nó quá phổ biến và được sử dụng hằng ngày trong nodejs, reactjs... rất nhiều. Nhưng hầu hết, chúng ta để ý kỹ xem, nếu như dùng promise rồi thì sẽ không dùng async-await và ngược lại. Tại sao?
Ajax jquery không còn lạ gì với anh em developers nữa, những có nhiều thứ tôi nghĩ sẽ có nhiều bạn còn chưa biết và chưa sử dụng bao giờ như sử dụng ajax with Promises and deferred objects? Làm thể nào gọi Multiple AJAX một cách tốt nhất? Thì trong bài viết này sẽ giới thiệu sâu và kỹ hơn về ajax.
<p>Đề bài: Hãy tìm họ tên F1, F2, F3 của chiếc SH 125i của anh A . Giải thích: Là bài toán tìm các đời chủ của chiếc xe của anh A. Nghe có vẻ đơn giản nhưng nó đơn giản thật, quan trọng của thuật toán này là tối ưu và performace thôi. Và tôi sẽ cho các bạn thấy Promise lợi hại thế nào? Cách 1 : chúng ta sử dụng async/await để giải quyết bài toán sau:</p>
<p>Có thể series này dành cho những bạn mới bắt đầu hoặc còn lơ mơ với ngôn ngữ Javascript. Cho nên tôi hy vọng rằng Series này là một trong những chìa khoá giúp bạn hiểu sâu hơn về những khái niệm trong javascript.</p>
Hầu hết các coder của tất cả các ngôn ngữ chứ không riêng gì javascript đều hiểu về khái niệm này. Và trong bài này tôi sẽ tổng hợp các cheatsheet để các bạn đọc mới học về async/await dễ hình dung và áp dụng vào thực tế.
Async functions là gì? Bạn có thể sử dụng Map, filter và reduce trong Async functions, nhưng có thể bạn mắc sai lầm hay vô tình nào đó trong những trường hợp thế này không? Không phải lúc nào async-await đều chạy như bạn mong muốn.
Modern JavaScript Cheatsheet - Tipjs chia sẻ một bài post rất hữu ích về các tính năng của JavaScript. Bài viết này sẽ có thể được update mỗi ngày, vì tính năng JavaScript vô số kể, cho nên nếu có miss một tính năng nào đó thì tipjs cũng mong có sự đóng góp của các bạn.
Async await trong javascript đã có nhiều bài viết nhưng có lẽ đây là bài viết cuối cùng mà tôi muốn viết về Async await. Một lần làm cho rõ còn hơn lằng nhằng.
ES12 hay ES2021 chuẩn bị sắp phát hành những tính năng mới, cùng với đó là ES11 đã là một phiên bản cũ. Từng đó cũng đủ cho tôi và các bạn cảm thấy những phương thức, cách hoạt động thay đổi và nâng cấp một cách chóng mặt. Nhưng từ đó cũng sẽ đào thải những developers không theo kịp hoặc không tìm hiểu và phát huy những thế mạnh của những tính năng cho năm 2021 này.
Bạn đã sử dụng Async / await như thế nào kể từ khi được giới thiệu bới ES7? Hay là code chạy thành công là xem như là thoả mãn? Chúng ta cũng đi một vài ví dụ để thấy có thể bạn đã mắc sai lầm trong khi sử dụng Async / await trong code của bạn?
Trong quá trình làm việc, bạn có trường hợp phải add một file javascript như những thống kê của facebook, goole hay "Adding pixel tracking to a link". Bạn phải làm như thế nào? Hãy tham khảo qua bài viết này, và nếu nó hay thì hãy lưu lại cho lần tới.
ES6 Features - Arrow Functions ,Classes ,Enhanced Object Literals ,String interpolation ,Destructuring ,Default ,Spread ,Spread + Object Literals ,Rest ,Let ,Const ,For..of ,Unicode ,Modules & Module Loaders ,Set ,WeakSet ,Map ,WeakMap ,Proxies ,Symbols ,Inheritable Built-ins ,New Library ,Binary and Octal ,Promises ,Reflect ,Tail Call Optimization
Google Analytics, Facebook Login cùng với việc sử dụng 3rd-party thì mang lại nhiều tiện ích thế nhưng có một nhược điểm lớn đó là khiến tải trang chậm hơn so với trước đây.
javascript async await được phát triển kể từ khi ES7 ra đời, trước đó có promise ở ES6 và xa hơn nữa là callback. Ở phần này chủ yếu nói về try catch.
Có một bạn gửi câu hỏi về bằng một hình ảnh, và tôi không bất ngờ lắm với tình huống trên. Với một 1 triệu url thì nếu sử dụng for loop như bình thường là không thể. Và tôi đã gặp và có giải pháp nay chia sẻ cho các bạn.
Uploading files Cloudinary using Multer including single and multiple files. Sau bài viết "upload files using multer expressJs" và tôi đã hứa là sẽ show cho các bạn một ví dụ về upload images lên cloudinary sử dụng multer. Cloudinary là gì? Tại sao tôi lại chọn hosting này? Và câu trả lời sẽ có trong bài viết này. Trước khi tiếp tục hành trình upload file lên Cloudinary thì tôi muốn các bạn nên xem bài viết trước đó là upload files với Multer. Lúc đó bạn sẽ hiểu hơn và chính tôi cũng đỡ phải giải thích lại về cách sử dụng Multer. Ok bắt đầu thôi.
Async error handling với 4 cách xử lý này cho dù bạn là ai, level nào đi chăng nữa thì cũng dùng một trong những cách Async-Await, promises, javascript callback hay tipescript callback
ES2020 là phiên bản của ECMAScript tương ứng đến năm 2020. Phiên bản này không chứa nhiều tính năng mới như ES6 (ES2015). Nhưng nhiều tính năng thú vị và hữu ích cũng đã được thêm vào. Bài viết này giới thiệu các tính năng mới của ES2020 kèm theo các ví dụ để minh hoạ. Bằng cách này, bạn có thể nhanh chóng hiểu các tính năng mới này mà không yêu cầu giải thích phức tạp.
Settimer js để sử dụng setTimeout hay setInterval thì quá đơn giản, nhưng để hiểu cơ chế hoạt động của setTimeout và setInterval là một điều không hề dễ dàng, cho nên trường hợp dưới đây là một sai lầm do không hiểu hoạt động của hai cơ chế trên.
Rất nhiều lần khi chúng tôi có các cuộc phỏng vấn sắp tới, có những trường hợp bạn sẽ được yêu cầu thực hiện một nhiệm vụ kỹ thuật trước người đánh giá bằng ngôn ngữ bạn chọn. Bởi vì giai đoạn này là quan trọng nhất cho sự thành công của bạn, điều quan trọng là phải chuẩn bị và ít nhất là tự tin hơn với các kỹ năng lập trình của bạn. Chính vì vậy, chúng tôi tổng kết cho bạn những câu hỏi phỏng vấn tốt nhất có thể.
Eventloop là một phần quan trọng của hệ thống runtime của Node.js, nó liên quan đến callback, thread nhưng để hiểu khái niệm này không đơn giản. Bài viết này phân tích rất kỹ về vấn đề này.
ES12 chưa qua thì ES2022/ES13 đã tới, nó quá nhanh và nguy hiểm. Bởi kỹ thuật luôn vậy sự đổi mới diễn ra hằng ngày, là những lập trình viên vẫn ngồi yên tại chỗ, họ không di chuyển đôi chân nhưng đầu óc của họ luôn chuyển động.
ES6 được biết đến là ECMAScript 2015. Thật sự có rất nhiều tính năng được giới thiệu trong ECMAScript 6, nhưng với tôi thì tôi sẽ chỉ học những tính năng dưới đây mà thôi.
JavaScript is one of the most popular languages you can learn. As many people say: “If you’re going to learn just one programming language, go for JavaScript.” If this sounds compelling to you, here’s a list of 127 beneficial snippets that you can learn and use immediately.
Top-level await cho phép developers sử dụng await mà không cần phải khai báo async function. Và nó hoạt động như một async function. Nhưng hãy chú ý khi sử dụng top-level await, vì nó đang ở Status: Stage 3.
Axios vs Fetch - Nếu như bạn đã từng làm việt với HTTP calls trong javascript hay nodejs thì bạn cũng đã từng sử dụng 1 trong 2 thằng này. Axios là một module mạnh mẽ và phổ biến trong javascript, và tương tự Fetch được phát hành 2015 cho đến nay
Mysql nodejs thêm Expressjs là một kết hợp hoàn hảo để chúng ta có thể tạo dựng cho mình một blogs nhanh chóng. Mở rộng hơn về kết hợp này thì những lập trình viên có thể sử dụng những công cụ này để có thể phát triển cơ sở hạ tầng để phát triển một REST ful dành cho nhiều ứng dụng.
Connection pool trong nodejs là rất quan trọng, nó là một kỹ thuật rất quan trọng cho việc tương tác bất kỳ resource như Mysql, PostgreSQL, Redis or MongoDB.
Những tính năng của javscript kể từ khi ES6 ra đời cho đến chuẩn bị stage 4 của ES11. Và kết thúc năm 2019 thì chúng ta có học được những tính năng gì trong những feature javascript dưới đây.
Axios interceptor la gi? Tại sao lại được quan tâm nhiều đến vậy, hiệu quả của việc sử dụng interceptors trong Axios như thế nào? Và cơ chế lấy lại token khi token hết hạn khi sử dụng interceptors axios kết hợp với refreshToken.
Khái niệm cần hiểu trong lập trình javascript - Cho dù bạn đang ở level nào của một developer thì những khái nhiệm cơ bản cũng đóng vai trò quan trọng. Cho nên dễ hiểu tại sao, những nhà developer js luôn có những hướng dẫn cơ bản về những khái niệm cơ bản.
Tổng hợp 150 packages và resource Node.js chất lượng cao - Cập nhật liên tục
Async await Error Handling in Express - Mấy hôm trở lại đây, chúng ta đã thảo luận khá nhiều về Promise và Async/await. Đây là một đề tài khá thú vị, vì có nhiều cách triển khai gây tranh cãi về performance khi sử dụng cái này cái kia. Nhưng trong bài học này chúng ta tập trung vào việc xử lý lỗi ở Express.
nodejs http request là một chức năng cốt lõi cho các ngôn ngữ hiện đại và là một trong những điều đầu tiên mà nhiều developer nên học nhiều cách để thích nghi với môi trường mới. Khi nói đến Node.js có một số lượng hợp lý các giải pháp cho vấn đề này cả được xây dựng trong ngôn ngữ và bởi cộng đồng. Sau đây mình liệt kê cho các bạn những cách phổ biến nhất mà các dev hay sử dụng nhất... Và cũng tất nhiên bạn nên tìm hiểu xem Http Request là gì trước khi đọc bài này.
Mỗi một dự án, mỗi một webservice cũng đều kết nối ít nhất một hay nhiều database. Việc lựa chọn database nào cho dự án phù hợp thì tuỳ thuộc vào bạn. Ở bài viết này, chúng tôi sẽ hướng dẫn cách connect database với nodejs với nhiều database như: Cassandra, Couchbase, CouchDB, LevelDB, MySQL, MongoDB...
Loop with async await. Đây là một trường hợp sai lầm phổ biến và đi đâu tôi cũng bắt gặp những câu hỏi như vậy? Tại sao dùng foreach với async lại không cho kết quả đúng. Và có nhiều câu trả lời cho câu hỏi này, nhưng hầu như là đưa ra giải pháp khác chứ chưa giải thích được vì sao async await không nên sử dụng trong foreach.
JSON NodeJS (JavaScript Object Notation) được sử dụng rộng rãi trong việc chia sẻ dữ liệu với nhiều ngôn ngữ khác nhau. Nhờ tính đồng nhất và đơn giản dữ liệu, do đó trong các ứng dụng Nodejs cũng được thường xuyên sử dụng.
Xử lý hình ảnh với Node giờ đây dễ dàng hơn bao giờ hết. Có rất nhiều thư viện hỗ trợ chúng ta như sharp, cloudinary... Nhưng trong bài biết này, tôi sẽ giới thiệu cho bạn một thư viện mới, cung cấp mạnh mẽ những API như Resizing, Crop...
Mongoose has two ways of connecting to a MongoDB database, connect() and createConnection(). You can use these within an async function as follows:
WebRTC là một công cụ xử lý âm thanh và video được Google phát triển và cho ra mã nguồn mở vào năm 2011. Nó có thể thu thập dữ liệu video trong thời gian thực, có nghĩa là nó có thể được sử dụng để phát trực tiếp, ghi âm trên máy tính và chia sẻ screen.
Sử dụng JavaScript truy cập camera sau, trước và chụp màn mình thiết bị di động. Trong bài viết này, tôi sẽ chỉ cho bạn cách truy cập camera của thiết bị trên một trang web thông qua JavaScript và hỗ trợ nhiều trình duyệt mà không cần đến các thư viện bên ngoài.
Đầu tiên khi sử dụng await() thì đó chính là việc bạn đang sử dụng chức năng synchronous. Còn khi bạn sử dụng async keyword thì điều đó không đồng nghĩa với việc bạn đang sử dụng chức năng async. Nó chỉ cho phép bạn sử dụng await() trong một chức năng được sử dụng bằng async().
<p>Trong bài viết này tôi sẽ giới thiệu một vài thủ thuật nho nhỏ trong query arrays in firebase. Trước đây tôi cũng có viết một bài về đề tài này nhưng có một số trang mạng đã vô tình lấy nó với nhan đề "[Firebase] - Làm thế nào query một array key ở Firebase?". Những ai lấy bài thì cố gắng ghi nguồn lại giúp tôi. Và tôi đã xoá bài đó trong page anonystick này. Nay tôi viết lại và làm rõ một số vấn đề về firebase hơn.</p>
Lập trình đồng bộ hay bất đồng bộ không đơn giản như những gì được viết trong nhiều blog, đó chỉ là lý thuyết, vậy làm sao chúng ta biết được hiệu suất của nó thế nào đây?
Trong bài viết này, chúng tôi đã tổng hợp lại các handbook về học javascript từ cơ bản đến nâng cao. Nhằm giúp cho các bạn đang và sẽ bước trên con đường javascript. Chúc các bạn thành công!
Unit test NodeJS rất dễ viết và có thể được thực thi mà hầu như không cần cấu hình gì cả chỉ cần install package là ok, vì chúng thường được thực hiện chỉ bằng một lệnh gọi function.
Try catch xuất hiện hầu hết tất cả những ngôn ngữ lập trình, chứ không riêng gì javascript. Một lập trình viên giỏi không có nghĩa là code không có lỗi, mà giỏi ở đây đó chính là, anh ta biết quản lý lỗi một cách xuất sắc nhất, một bug hay error có thể giết chết một process của một ứng dụng. Trong bài post này, chúng ta sẽ đi xem try...catch làm được gì?
Học javascript cơ bản hay nâng cao. Hay bạn là người mới học lập trình hay là lâu năm rồi thì cũng phải hiểu trong bất cứ ngành nghề gì thì cũng có những nguyên tắc nhất định cần phải nắm và học một cách thành thạo. Nếu không bạn biết đấy, quy luật đào thải sẽ cuốn đi những người không nắm được những nguyên tắc trong nghề lập trình viên. Nếu là bạn thì bạn sẽ nghĩ về những nguyên tắc đó như thế nào?
JSONP là gì? JSONP (json with padding) là một phương pháp hay còn gọi là phương tiện giao tiếp giải quyết vấn đề truy cập dữ liệu giữa các domain khác nhau. Do chính sách cùng nguồn gốc chính vì vậy các trang web có thể lấy dữ liệu JSON được tạo động từ các nguồn khác và chế độ sử dụng này được gọi là JSONP. Dữ liệu được thu thập bằng JSONP không phải là JSON, mà là JavaScript tùy ý, được trình thông dịch JavaScript thực thi thay vì được phân tích cú pháp bởi trình phân tích cú pháp JSON.
Tôi bắt đầu lập trình bằng javascript cách đây 6 tháng và đây là ngôn ngữ duy nhất tôi biết cho đến nay. Tôi không thực sự hứng thú với frontend và tôi đã quen thuộc với các công nghệ được sử dụng để phát triển phía backend. Tôi muốn ngôn ngữ tiếp theo của mình là ngôn ngữ được sử dụng rộng rãi cho phát triển backend chủ thuần túy trong ngành và tôi không thể quyết định giữa JAVA, Go, C#, PHP, python. Ngôn ngữ nào có thể mang lại cho tôi nhiều cơ hội nhất để bắt đầu hành trình của mình trong những năm tiếp theo của lập trình viên.
Learn to create your first RESTful API in NodeJS, ExpressJS, and MongoDB (mongoose) in 2019. We cover the MVC pattern, CRUD, Routes, Error Handling, ES6, Promises, GET, POST, DELETE in under 50 minutes.
Qua những tính năng của ES2019 mà chúng ta mới lướt qua thì mình có cảm nhận nó không thú vị như ES2015 hoặc ES2017 (async / await), nhưng các tính năng mới này giúp language's API một cách tròn trặn hơn. Array#flat() và Array#flatMap() mở rộng hỗ trợ hiện có của JavaScript để thao tác mảng có thể xâu chuỗi. Object.fromEntries () là phần bổ sung gọn gàng cho Object.entries ().
Tài liệu học JavaScript từ Fresher cho đến Junior. Tài liệu có 106 chapter. Một cuốn sách học JavaScript hiệu quả, đó là một khoá học hoàn chỉnh.
Làm thế nào để chuyển đổi một Address sang Longitude và Latitude. 2 ví dụ sau đây có thể giúp bạn xử lý nhanh chóng.
Autocomplete search là một thuật toán rất phức tạp, và đỏi hòi nhiều thuật toán được áp dụng. Nếu bạn đã từng sử dụng Sublime Text để code thì ở đó bạn để ý rằng, đó là một hệ thống tìm kiếm thông minh, khi chúng ta tìm kiếm một vài ký tự thì hệ thống đã gợi ý cho bạn những từ khoá tìm kiếm cụ thể hơn.
Fetch api là gì? Trước đây nếu bạn nào đã từng sử dụng XMLHttpRequest để giao tiếp lấy dữ liệu từ server đến client hay ngược lại thì cũng sẽ hiểu nôm na Fetch api javascript cũng vậy. Fetch api cho phép những nhà phát triển lấy resource và thực hiện những yêu cầu thông qua http.
Nên lưu token ở đâu trong ba phương pháp phổ biến như cookie, localStorage, sessionStorage. Sau những bài viết về JSON Web Token(JWT) đa số các bạn cũng đã hiểu và đã apply cho các ứng dụng của mình. Các luồng đi của việc created và verify một token xem như đã xong, nhưng có có một vấn đề quan trọng mà các bạn bỏ qua.
Thư viện JavaScript bao gồm rất rất nhiều, nhưng để lựa chọn phù hợp nhằm rút ngắn thời gian học và tìm hiểu thì tipjs đã tổng hợp và chia ra từng phần cho các bạn dễ hình dung hơn.
Lộ trình học javascript - Các bạn không cần học một khoá học nào cả? Nhấn mạnh rằng không cần theo một khoá học nào hết? Các bạn chỉ cần đi theo lộ trình và những gì không hiểu thì hãy tham khảo tại các blog của các chuyên gia, họ sẽ giải thích cặn kẽ cho bạn. Như
Sau một thời gian sử dụng javascript thì tôi biết có nhiều bạn vẫn đang đi tìm câu hỏi này giống như mà tôi đã đi tim cách đây nhiều năm khi mới học về javascript.
Kinh nghiệm lập trình javascript không phải hoàn toàn là làm lâu hay nhiều năm trong lĩnh vực lập trình. Mà còn có thể học qua những bài viết về những mẹo nhỏ để tối ưu hoá một đoạn code mà tương lai chúng ta sẽ rơi vào trường hợp đó. Do vậy, chúng ta sẽ có nhiều trường hợp chưa gặp đến nhưng chúng ta đã đọc thấy nó. Và đây là một bài viết về những thói quen có thể bạn đã từng gặp, có thể bạn đạng gặp và có thể bạn sẽ từng gặp trong tương lai.
Đây là một trường hợp rất phổ biến nhưng lại ít người quan tâm tới nó. Bởi vì họ là những lập trình viên level 1 hoặc là họ đẵ gặp rồi nhưng không có cách giải quyết. Vì sao?
Xử lý chuỗi trong javascript là một kỹ năng cơ bản cho những bạn mới bắt đầu học javascript. Vì String, Object, Array được sử dụng rất nhiều trong một ứng dụng javascript. Trong bài viết này, tôi sẽ liệt kệ ra nhiều method dành cho String. Hy vọng sẽ giúp bạn hiểu hơn về String javascript.
Domcontentloaded là gì? Với một ví dụ với 100.000 dữ liệu cần hiện thị trên web thì bạn sẽ phân biệt và hiểu Domcontentloaded Event, đừng lo lắng.
Array trong javascript là một khía cạnh mà thú thật là tips javascript rất thích làm việc với nó. Từ back-end cho tới Front-end đi đâu cũng thấy người ta sử dụng nó song song với Object để giải quyết và lưu trữ dữ liệu. Chính vì vậy trong javascript đã có một sự ưu tiên không hề nhẹ khi liên tiếp bổ sung những method cho array kể từ khi javascript ra đời.