Hướng dẫn iife trong javascript

Nội dung bài viết

Nội dung chính

  • Video học lập trình mỗi ngày
  • Biểu thức hàm được gọi ngay là một cách để thực thi các hàm ngay lập tức, ngay sau khi chúng được tạo. IIFE rất hữu ích vì chúng không gây ô nhiễm đối tượng toàn cục và chúng là một cách đơn giản để tách các khai báo biến
  • Cú pháp thay thế sử dụng toán tử một ngôi
  • Được đặt tên là IIFE
  • IIFE bắt đầu bằng dấu chấm phẩy
  • Các hướng dẫn js khác:

Video học lập trình mỗi ngày

Ở bài trước chúng ta đã đi tìm hiểu về khái niệm "Discuss About Closures In JavaScript." Một khái niệm mà các bạn hỏi rất nhiều và hôm nay chúng ta sẽ đi thêm một khái niệm mà cũng nhiều bạn cũng đang mơ hồ và không biết giải thích như thế nào trước nhà tuyển dụng. Đó là IIFE (Immediately Invoked Function Expression).

Có rất nhiều bài viết về khái niệm này nhưng, mình khá hài lòng và hiểu nhiều hơn khi đọc bài viết này của Anh Thâu Nguyễn. Dưới đây xin republish bài của của anh.

Tham gia cùng chúng tôi:

Facebook: Cộng đồng lập trình javascript

Facebook Thảo luận về Javascript, ReactJS, VueJS, AngularJS Việt Nam

IIFE là viết tắt của Immediately Invoked Function Expression, có nghĩa là khởi tạo một function và thực thi nó ngay lập tức.
Cú pháp của IIFE là:

(function(){
 //code here
})();

Ta có thể truyền tham số cho IIFE như sau:

(function(window, name){
 //code here
})(window, name);

Vậy tại sao lại dùng IIFE? Bởi vì IIFE như là một các hộp đóng gói code của chính nó. Do đó, những biến trong hộp này là private, bên ngoài(global) không thể truy xuất hay thay đổi được. Và nếu vô tình bạn đặt tên biến giống với global thì cũng không bị ảnh hưởng bên ngoài. 

Xem ví dụ sau nhé:

var greeting = 'Hola';
var name = 'Thau';

(function(window, name){
//code here
var greeting = 'Hello';
console.log(greeting + ' ' + name)
})(window, name);

Bạn có thể thấy rằng ta có hai biến greeting. Một là toàn cục, một trong IIFE. Hai biến này nằm ở hai context bộ nhớ khác nhau, nên khi ta thay đổi biến greeting trong IIFE không làm ảnh hưởng greeting ở ngoài và ngược lại.

Có một điều lưu ý là khi tạo thư viện bằng khối IIFE thì bạn nên sử dụng ‘use strict’ để tránh được một số lỗi về type, scope trong js. Nếu như ví dụ trên nếu không có strict mode như sau:

var greeting = 'Hola'; 
var name = 'Thau'; 
(function(window, name){ //code here 
 greeting = 'Hello';       
console.log(greeting + ' ' + name) 
})(window, name);

Biến greeting ở đây vô tình là global và sẽ thay đổi luôn giá trị của biến bên ngoài. Cho nên để hạn chế điều này bạn có thể sử dụng strict mode.

(function(window, name){ //code here 
'use strict';
 greeting = 'Hello'; 
console.log(greeting + ' ' + name) 
})(window, name);
Ở đoạn code này JS sẽ throw error vì bạn đang cố truy cập một biến gobal trong IIFE

Cùng xem một ví dụ khác:

for(var i = 0; i < 10; i++){
setTimeout(function(){
console.log(i);//biến i ở đây là biến i của for
});
}

setTimeout sẽ chạy khi vòng for chạy xong, do đó i = 10;

for(var i = 0; i < 10; i++){
(function(i){//IIFE tạo ra một scope khác cho từng i, nên giá trị của i là khác nhau
setTimeout(function(){
console.log(i);
});
})(i);//biến i ở đây được tạo riêng cho từng IIFE 
}

Mỗi vòng lặp IIFE tạo một scope mới cho i, nên i ở đây là khác nhau.

Tóm lại, IIFE hữu ích khi chúng ta muốn đóng gói code để nó không ảnh hưởng đến các biến toàn cục. Nó hữu ích khi chúng ta viết những thư viện. Sau đó, chúng ta nhúng vào những trang web khác nhau thì cũng không ảnh hưởng đến code của chúng ta.

Tham gia cùng chúng tôi:

Facebook: Cộng đồng lập trình javascript

Facebook Thảo luận về Javascript, ReactJS, VueJS, AngularJS Việt Nam

Xin cảm ơn Source : http://thaunguyen.com - Javascript – Web Development – Personal Development

Biểu thức hàm được gọi ngay là một cách để thực thi các hàm ngay lập tức, ngay sau khi chúng được tạo. IIFE rất hữu ích vì chúng không gây ô nhiễm đối tượng toàn cục và chúng là một cách đơn giản để tách các khai báo biến

AnBiểu thức hàm được gọi ngay lập tức(IIFE cho bạn bè) là một cách để thực thi các chức năng ngay lập tức, ngay sau khi chúng được tạo.

IIFE rất hữu ích vìhọ không làm ô nhiễm đối tượng toàn cầuvà chúng là một cách đơn giản đểcô lập các khai báo biến.

Đây là cú pháp xác định IIFE:

IIFE cũng có thể được định nghĩa bằng các hàm mũi tên:

Về cơ bản, chúng ta có một hàm được định nghĩa bên trong dấu ngoặc đơn, sau đó chúng ta thêm vào()để thực thi chức năng đó:(/* function */)().

Các dấu ngoặc đơn đó thực sự là thứ làm cho hàm của chúng ta, về mặt nội bộ, được coi là một biểu thức. Nếu không, khai báo hàm sẽ không hợp lệ, vì chúng tôi không chỉ định bất kỳ tên nào:

Khai báo hàm muốn có tên, trong khi biểu thức hàm không yêu cầu.

Bạn cũng có thể đặt dấu ngoặc đơn gọiphía trongdấu ngoặc đơn của biểu thức, không có sự khác biệt, chỉ là tùy chọn kiểu dáng:

(function() {
  /* */
}())

(() => { /* */ }())

Cú pháp thay thế sử dụng toán tử một ngôi

Có một số cú pháp khác thường mà bạn có thể sử dụng để tạo IIFE, nhưng nó rất hiếm khi được sử dụng trong thế giới thực và nó phụ thuộc vào việc sử dụngbất kìtoán tử một ngôi:

-(function() {
  /* */
})() +
  (function() {
    /* */
  })()

~(function() { /* */ })()

!(function() { /* */ })()

(không hoạt động với các hàm mũi tên)

Được đặt tên là IIFE

Một IIFE cũng có thể được đặt tên là các hàm thông thường (không phải hàm mũi tên). Điều này không thay đổi thực tế là hàm không "rò rỉ" vào phạm vi toàn cục và nó không thể được gọi lại sau khi thực thi:

(function doSomething() {
  /* */
})()

IIFE bắt đầu bằng dấu chấm phẩy

Bạn có thể thấy điều này trong tự nhiên:

;(function() {
  /* */
})()

Điều này ngăn chặn sự cố khi nối hai tệp JavaScript một cách mù quáng. Vì JavaScript không yêu cầu dấu chấm phẩy, bạn có thể nối tệp với một số câu lệnh ở dòng cuối cùng gây ra lỗi cú pháp.

Vấn đề này về cơ bản được giải quyết bằng các gói mã "thông minh" nhưwebpack.


Các hướng dẫn js khác:

  • Những điều cần tránh trong JavaScript (những phần xấu)
  • Trì hoãn và Hứa hẹn trong JavaScript (ví dụ + Ember.js)
  • Cách tải tệp lên máy chủ bằng JavaScript
  • Kiểu mã hóa JavaScript
  • Giới thiệu về Mảng JavaScript
  • Giới thiệu về ngôn ngữ lập trình JavaScript
  • Hướng dẫn đầy đủ về ECMAScript 2015-2019
  • Hiểu những lời hứa về JavaScript
  • Cấu trúc Lexical của JavaScript
  • Các loại JavaScript
  • Các biến JavaScript
  • Danh sách các Ý tưởng ứng dụng web mẫu
  • Giới thiệu về Lập trình chức năng với JavaScript
  • JavaScript không đồng bộ hiện đại với Async và Await
  • Các vòng lặp và phạm vi JavaScript
  • Cấu trúc dữ liệu JavaScript của bản đồ
  • Cấu trúc dữ liệu JavaScript tập hợp
  • Hướng dẫn về các chữ mẫu JavaScript
  • Lộ trình học JavaScript
  • Biểu thức JavaScript
  • Khám phá bộ hẹn giờ JavaScript
  • Sự kiện JavaScript được giải thích
  • Vòng lặp JavaScript
  • Viết các vòng lặp JavaScript bằng cách sử dụng bản đồ, lọc, giảm và tìm
  • Vòng lặp sự kiện JavaScript
  • Các hàm JavaScript
  • Bảng chú giải thuật ngữ JavaScript
  • JavaScript Closures giải thích
  • Hướng dẫn về Hàm mũi tên trong JavaScript
  • Hướng dẫn về Cụm từ thông dụng JavaScript
  • Cách kiểm tra xem một chuỗi có chứa chuỗi con trong JavaScript hay không
  • Cách xóa một mục khỏi Mảng trong JavaScript
  • Cách sao chép sâu một đối tượng JavaScript
  • Introduction to Unicode and UTF-8
  • Unicode trong JavaScript
  • Cách viết hoa chữ cái đầu tiên của chuỗi trong JavaScript
  • Cách định dạng một số dưới dạng giá trị tiền tệ trong JavaScript
  • Cách chuyển đổi một chuỗi thành một số trong JavaScript
  • cái này trong JavaScript
  • Cách lấy dấu thời gian hiện tại trong JavaScript
  • Chế độ nghiêm ngặt của JavaScript
  • JavaScript Biểu thức hàm được gọi ngay lập tức (IIFE)
  • Cách chuyển hướng đến một trang web khác bằng JavaScript
  • Cách xóa thuộc tính khỏi đối tượng JavaScript
  • Cách nối một mục vào một mảng trong JavaScript
  • Cách kiểm tra xem thuộc tính đối tượng JavaScript có không được xác định hay không
  • Giới thiệu về Mô-đun ES
  • Giới thiệu về CommonJS
  • Lập trình không đồng bộ JavaScript và gọi lại
  • Cách thay thế tất cả các lần xuất hiện của một chuỗi trong JavaScript
  • Hướng dẫn tham khảo nhanh về Cú pháp JavaScript hiện đại
  • Cách cắt số 0 ở đầu một số trong JavaScript
  • Cách kiểm tra một đối tượng JavaScript
  • Hướng dẫn chính xác về Ngày trong JavaScript
  • Hướng dẫn Moment.js
  • Dấu chấm phẩy trong JavaScript
  • Các toán tử số học JavaScript
  • Đối tượng Toán JavaScript
  • Tạo chuỗi ngẫu nhiên và duy nhất trong JavaScript
  • Cách đặt các hàm JavaScript của bạn ở chế độ ngủ
  • Kế thừa nguyên mẫu JavaScript
  • Ngoại lệ JavaScript
  • Cách sử dụng các lớp JavaScript
  • Sách dạy nấu ăn JavaScript
  • Trích dẫn bằng JavaScript
  • Cách xác thực địa chỉ email trong JavaScript
  • Cách lấy các thuộc tính duy nhất của một tập hợp các đối tượng trong một mảng JavaScript
  • Cách kiểm tra xem một chuỗi có bắt đầu bằng chuỗi khác trong JavaScript hay không
  • Cách tạo chuỗi nhiều dòng trong JavaScript
  • Hướng dẫn ES6
  • Cách lấy URL hiện tại trong JavaScript
  • Hướng dẫn ES2016
  • Cách khởi tạo một mảng mới với các giá trị trong JavaScript
  • Hướng dẫn ES2017
  • Hướng dẫn ES2018
  • Cách sử dụng Async và Await với Array.prototype.map ()
  • Không đồng bộ so với mã đồng bộ
  • Cách tạo một số ngẫu nhiên giữa hai số trong JavaScript
  • Hướng dẫn sử dụng HTML Canvas API
  • Cách lấy chỉ mục của một lần lặp trong vòng lặp for-of trong JavaScript
  • Ứng dụng một trang là gì?
  • Giới thiệu về WebAssembly
  • Giới thiệu về JSON
  • Hướng dẫn JSONP
  • Should you use or learn jQuery in 2020?
  • Cách ẩn một phần tử DOM bằng JavaScript thuần túy
  • Cách hợp nhất hai đối tượng trong JavaScript
  • Cách làm trống một mảng JavaScript
  • Cách mã hóa URL bằng JavaScript
  • Cách đặt giá trị tham số mặc định trong JavaScript
  • Cách sắp xếp một mảng đối tượng theo giá trị thuộc tính trong JavaScript
  • Cách đếm số lượng thuộc tính trong một đối tượng JavaScript
  • call () và apply () trong JavaScript
  • Giới thiệu về PeerJS, thư viện WebRTC
  • Làm việc với các đối tượng và mảng bằng Rest and Spread
  • Hủy cấu trúc các đối tượng và mảng trong JavaScript
  • Hướng dẫn cuối cùng để gỡ lỗi JavaScript
  • Hướng dẫn TypeScript
  • Tự động chọn một phương thức của một đối tượng trong JavaScript
  • Chuyển không xác định sang JavaScript Biểu thức hàm được gọi ngay lập tức
  • Ngôn ngữ được gõ nhẹ so với ngôn ngữ được gõ mạnh
  • Cách tạo kiểu các phần tử DOM bằng JavaScript
  • Truyền trong JavaScript
  • Hướng dẫn tạo JavaScript
  • Kích thước thư mục node_modules không phải là vấn đề. Đó là một đặc ân
  • Cách giải quyết lỗi số nhận dạng không mong muốn khi nhập mô-đun trong JavaScript
  • Cách liệt kê tất cả các phương thức của một đối tượng trong JavaScript
  • Phương thức String Replace ()
  • Phương thức tìm kiếm chuỗi ()
  • Cách tôi chạy các đoạn mã JavaScript nhỏ
  • Hướng dẫn ES2019
  • Phương thức chuỗi charAt ()
  • Phương thức chuỗi charCodeAt ()
  • Phương thức String codePointAt ()
  • Phương thức String concat ()
  • Phương thức String endWith ()
  • Phương thức String include ()
  • Phương thức String indexOf ()
  • Phương thức String lastIndexOf ()
  • Phương thức String localeCompare ()
  • Phương thức String match ()
  • Phương thức String normalize ()
  • Phương thức String padEnd ()
  • Phương thức String padStart ()
  • Phương thức lặp lại chuỗi ()
  • Phương thức String Slice ()
  • Phương thức String split ()
  • Phương thức String startedWith ()
  • Phương thức String substring ()
  • Phương thức String toLocaleLowerCase ()
  • Phương thức String toLocaleUpperCase ()
  • Phương thức String toLowerCase ()
  • Phương thức String toString ()
  • Phương thức String toUpperCase ()
  • Phương thức String trim ()
  • Phương thức String trimEnd ()
  • Phương thức String trimStart ()
  • Ghi nhớ trong JavaScript
  • Phương thức String valueOf ()
  • Tham khảo JavaScript: Chuỗi
  • Phương thức Number isInteger ()
  • Phương thức Number isNaN ()
  • Phương thức Number isSafeInteger ()
  • Phương thức Number parseFloat ()
  • Phương thức Number parseInt ()
  • Phương thức Number toString ()
  • Phương thức Number valueOf ()
  • Phương thức Number toPre precision ()
  • Phương thức Number toExponential ()
  • Phương thức Number toLocaleString ()
  • Phương thức Number toFixed ()
  • Phương thức Number isFinite ()
  • Tham chiếu JavaScript: Số
  • Bộ mô tả thuộc tính JavaScript
  • Phương thức gán đối tượng ()
  • Phương thức đối tượng create ()
  • Phương thức Object defineProperties ()
  • Phương thức Object defineProperty ()
  • Phương thức Object entry ()
  • Phương thức đông cứng đối tượng ()
  • Phương thức Object getOwnPropertyDescriptor ()
  • Phương thức Object getOwnPropertyDescriptors ()
  • Phương thức Object getOwnPropertyNames ()
  • Phương thức Object getOwnPropertySymbols ()
  • Phương thức Object getPrototypeOf ()
  • Phương thức Object is ()
  • Phương thức Object isExtensible ()
  • Phương thức Object isFrozen ()
  • Phương thức Object isSealed ()
  • Phương thức Object key ()
  • Phương thức Object PreventExtensions ()
  • Phương thức Object seal ()
  • Phương thức Object setPrototypeOf ()
  • Phương thức Object giá trị ()
  • Phương thức Object hasOwnProperty ()
  • Phương thức Object isPrototypeOf ()
  • Phương thức Object propertyIsEnumerable ()
  • Phương thức Object toLocaleString ()
  • Phương thức Object toString ()
  • Phương thức Object valueOf ()
  • Tham chiếu JavaScript: Đối tượng
  • Toán tử gán JavaScript
  • Quốc tế hóa JavaScript
  • Toán tử typeof JavaScript
  • JavaScript Toán tử mới
  • Toán tử so sánh JavaScript
  • Quy tắc ưu tiên toán tử JavaScript
  • Toán tử instanceof JavaScript
  • Câu lệnh JavaScript
  • Phạm vi JavaScript
  • Chuyển đổi loại JavaScript (truyền)
  • Các toán tử bình đẳng trong JavaScript
  • JavaScript có điều kiện if / else
  • Điều kiện chuyển đổi JavaScript
  • Toán tử xóa JavaScript
  • Tham số hàm JavaScript
  • Toán tử Spread JavaScript
  • Giá trị trả lại của JavaScript
  • Toán tử logic JavaScript
  • Toán tử bậc ba của JavaScript
  • Đệ quy JavaScript
  • Thuộc tính đối tượng JavaScript
  • Đối tượng lỗi JavaScript
  • Đối tượng toàn cầu JavaScript
  • Hàm filter JavaScript ()
  • Hàm map JavaScript ()
  • Hàm Reduce () trong JavaScript
  • Toán tử JavaScript `in`
  • Toán tử JavaScript
  • Cách nhận giá trị của thuộc tính CSS trong JavaScript
  • Cách thêm trình xử lý sự kiện vào nhiều phần tử trong JavaScript
  • Trường lớp riêng trong JavaScript
  • Cách sắp xếp mảng theo giá trị ngày trong JavaScript
  • Trường lớp công khai JavaScript
  • Ký hiệu JavaScript
  • Cách sử dụng thư viện bcrypt JavaScript
  • Cách đổi tên các trường khi sử dụng cấu trúc đối tượng
  • Cách kiểm tra các loại trong JavaScript mà không cần sử dụng TypeScript
  • Cách kiểm tra xem một mảng JavaScript có chứa một giá trị cụ thể hay không
  • Toán tử phủ định kép là gì !! làm trong JavaScript?
  • Toán tử bình đẳng nào nên được sử dụng trong so sánh JavaScript? == so với ===
  • JavaScript có còn đáng học không?
  • Cách trả về kết quả của một hàm không đồng bộ trong JavaScript
  • Cách kiểm tra xem một đối tượng có trống trong JavaScript hay không
  • Cách thoát khỏi vòng lặp for trong JavaScript
  • Cách thêm mục vào một mảng tại một chỉ mục cụ thể trong JavaScript
  • Tại sao bạn không nên sửa đổi nguyên mẫu đối tượng JavaScript
  • Sự khác biệt giữa sử dụng let và var trong JavaScript là gì?
  • Các liên kết được sử dụng để kích hoạt các hàm JavaScript
  • Cách nối hai chuỗi trong JavaScript
  • Cách nối hai mảng trong JavaScript
  • Làm cách nào để kiểm tra xem một giá trị JavaScript có phải là một mảng hay không?
  • Làm cách nào để lấy phần tử cuối cùng của một mảng trong JavaScript?
  • Cách gửi dữ liệu được mã hóa urlencom bằng Axios
  • Cách lấy ngày mai bằng JavaScript
  • Cách lấy ngày hôm qua bằng JavaScript
  • Cách lấy tên tháng từ ngày JavaScript
  • Cách kiểm tra xem hai ngày có phải là cùng một ngày hay không trong JavaScript
  • Cách kiểm tra xem một ngày có đề cập đến một ngày trong quá khứ trong JavaScript hay không
  • Câu lệnh có nhãn JavaScript
  • Cách chờ 2 hoặc nhiều lời hứa giải quyết trong JavaScript
  • Cách lấy ngày giữa 2 ngày trong JavaScript
  • Cách tải tệp lên bằng Tìm nạp
  • Cách định dạng ngày trong JavaScript
  • Cách lặp qua các thuộc tính đối tượng trong JavaScript
  • Cách tính số ngày giữa 2 ngày trong JavaScript
  • Cách sử dụng mức cao nhất đang chờ đợi trong Mô-đun ES
  • Nhập động JavaScript
  • Chuỗi tùy chọn JavaScript
  • Cách thay thế khoảng trắng bên trong một chuỗi trong JavaScript
  • JavaScript Nullish Coalescing
  • Cách làm phẳng một mảng trong JavaScript
  • Thập kỷ này trong JavaScript
  • Cách gửi tiêu đề ủy quyền bằng Axios
  • Danh sách các từ khóa và các từ dành riêng trong JavaScript
  • Làm thế nào để chuyển đổi một mảng thành một chuỗi trong JavaScript
  • Cách xóa tất cả nội dung thư mục node_modules
  • Cách xóa các bản sao khỏi một mảng JavaScript
  • Let vs Const trong JavaScript
  • Cùng một lệnh gọi API POST trong các thư viện JavaScript khác nhau
  • Cách lấy n mục đầu tiên trong một mảng trong JS
  • Cách chia mảng thành nhiều phần bằng nhau trong JS
  • Cách làm chậm vòng lặp trong JavaScript
  • Cách tải hình ảnh trong canvas HTML
  • Cách cắt một chuỗi thành các từ trong JavaScript
  • Cách chia một nửa mảng trong JavaScript
  • Cách viết văn bản vào HTML canvas
  • Cách xóa ký tự cuối cùng của chuỗi trong JavaScript
  • Cách xóa ký tự đầu tiên của chuỗi trong JavaScript
  • Cách sửa lỗi TypeError: Không thể gán chỉ đọc thuộc tính 'xuất' của đối tượng '# & lt; Đối tượng & gt;' lỗi
  • Cách tạo cửa sổ bật lên ý định thoát
  • Cách kiểm tra xem một phần tử có phải là con của phần tử khác hay không
  • Cách buộc thông tin đăng nhập cho mọi yêu cầu Axios
  • Cách giải quyết lỗi "không phải là một hàm" trong JavaScript
  • Gatsby, cách thay đổi biểu tượng yêu thích
  • Tải tệp JS bên ngoài bằng Gatsby
  • Cách phát hiện chế độ tối bằng JavaScript
  • Bưu kiện, cách sửa lỗi `RegeneratorRuntime không được xác định`
  • Cách phát hiện xem Adblocker có đang được sử dụng với JavaScript hay không
  • Cấu trúc đối tượng với các kiểu trong TypeScript
  • Sổ tay Deno: giới thiệu ngắn gọn về Deno 🦕
  • Cách lấy phân đoạn cuối cùng của đường dẫn hoặc URL bằng JavaScript
  • Cách xáo trộn các phần tử trong một mảng JavaScript
  • Cách kiểm tra xem khóa có tồn tại trong đối tượng JavaScript hay không
  • Sự kiện sôi sục và chụp sự kiện
  • event.stopPropagation so với event.preventDefault () so với return false trong các sự kiện DOM
  • Loại nguyên thủy so với đối tượng trong JavaScript
  • Làm thế nào bạn có thể biết loại giá trị là gì, trong JavaScript?
  • Cách trả về nhiều giá trị từ một hàm trong JavaScript
  • Hàm mũi tên so với hàm thông thường trong JavaScript
  • Chúng ta có thể truy cập giá trị thuộc tính của một đối tượng bằng những cách nào?
  • Sự khác biệt giữa null và undefined trong JavaScript là gì?
  • Sự khác biệt giữa một phương thức và một hàm là gì?
  • Những cách chúng ta có thể thoát khỏi vòng lặp trong JavaScript là gì?
  • Vòng lặp for..of của JavaScript
  • Hủy cấu trúc đối tượng trong JavaScript là gì?
  • Hosts trong JavaScript là gì?
  • Cách đổi dấu phẩy thành dấu chấm bằng JavaScript
  • Tầm quan trọng của thời gian khi làm việc với DOM
  • Cách đảo ngược một mảng JavaScript
  • Cách kiểm tra xem một giá trị có phải là một số trong JavaScript hay không
  • Cách chấp nhận các tham số không giới hạn trong một hàm JavaScript
  • Đối tượng proxy JavaScript
  • Ủy quyền sự kiện trong trình duyệt sử dụng JavaScript vani
  • Siêu từ khóa JavaScript
  • Giới thiệu về XState
  • Các giá trị được truyền bằng tham chiếu hay theo giá trị trong JavaScript?
  • Sự kiện tùy chỉnh trong JavaScript
  • Lỗi tùy chỉnh trong JavaScript
  • Không gian tên trong JavaScript
  • Một cách sử dụng kỳ lạ của dấu phẩy trong JavaScript
  • Chuỗi cuộc gọi phương thức trong JavaScript
  • Cách xử lý lời hứa từ chối
  • Cách hoán đổi hai phần tử mảng trong JavaScript
  • Cách tôi sửa lỗi "cb.apply không phải là chức năng" khi sử dụng Gitbook
  • Cách thêm một mục vào đầu một mảng trong JavaScript
  • Gatsby, sửa lỗi "không thể tìm thấy mô-đun gatsby-cli / lib / report"
  • Cách lấy chỉ mục của một mục trong một mảng JavaScript
  • Cách kiểm tra đối tượng trống trong JavaScript
  • Cách cấu trúc một đối tượng thành các biến hiện có trong JavaScript
  • Cấu trúc dữ liệu JavaScript của mảng
  • Cấu trúc dữ liệu JavaScript ngăn xếp
  • Cấu trúc dữ liệu JavaScript: Hàng đợi
  • Cấu trúc dữ liệu JavaScript: Đặt
  • Cấu trúc dữ liệu JavaScript: Từ điển
  • Cấu trúc dữ liệu JavaScript: Danh sách được liên kết
  • JavaScript, cách xuất một hàm
  • JavaScript, cách xuất nhiều hàm
  • JavaScript, cách thoát một hàm
  • JavaScript, cách tìm một ký tự trong một chuỗi
  • JavaScript, cách lọc một mảng
  • JavaScript, cách mở rộng một lớp
  • JavaScript, cách tìm các bản sao trong một mảng
  • JavaScript, cách thay thế một mục của một mảng
  • Thuật toán JavaScript: Tìm kiếm tuyến tính
  • Thuật toán JavaScript: Tìm kiếm nhị phân
  • Thuật toán JavaScript: Sắp xếp lựa chọn
  • Thuật toán JavaScript: Quicksort
  • Thuật toán JavaScript: Sắp xếp hợp nhất
  • Thuật toán JavaScript: Sắp xếp bong bóng