Hướng dẫn JS

JS TRANG CHỦ Giới thiệu JS JS Đến đâu Đầu ra JS Tuyên bố JS Cú pháp JS Bình luận JS Biến JS JS Hãy JS Const Toán tử JS Số học JS Chuyển nhượng JS Các loại dữ liệu JS Các hàm JS Đối tượng JS Sự kiện JS Chuỗi JS Phương thức chuỗi JS Tìm kiếm chuỗi JS Mẫu chuỗi JS Số JS Phương thức số JS Mảng JS Phương thức mảng JS Sắp xếp mảng JS Lặp lại mảng JS JS Array Const JS ngày Định dạng ngày JS Ngày lấy phương thức JS Phương pháp đặt ngày JS Toán JS JS ngẫu nhiên JS Booleans So sánh JS Điều kiện JS Chuyển đổi JS JS Loop cho JS Loop For In JS Loop For Of JS lặp trong khi JS Break JS lặp lại Bộ JS Bản đồ JS JS Typeof Chuyển đổi loại JS JS Bitwise JS RegExp Lỗi JS Phạm vi JS JS Hoists Chế độ nghiêm ngặt JS JS từ khóa này Hàm mũi tên JS Lớp JS JS JSON Gỡ lỗi JS Hướng dẫn kiểu JS Các phương pháp hay nhất về JS JS sai lầm Hiệu suất JS JS dành riêng từ

Phiên bản JS

Phiên bản JS JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS IE / Edge Lịch sử JS

Đối tượng JS

Định nghĩa đối tượng Thuộc tính đối tượng Phương thức đối tượng Hiển thị đối tượng Người truy cập đối tượng Trình tạo đối tượng Nguyên mẫu đối tượng Đối tượng lặp lại Bộ đối tượng Bản đồ đối tượng Tham chiếu đối tượng

Các hàm JS

Định nghĩa hàm Tham số chức năng Lời mời hàm Gọi hàm Áp dụng chức năng Chức năng đóng cửa

Lớp JS

Giới thiệu Lớp học Kế thừa giai cấp Lớp tĩnh

JS Async

Gọi lại JS JS không đồng bộ JS hứa JS Async / Await

JS HTML DOM

Giới thiệu DOM Phương thức DOM Tài liệu DOM Phần tử DOM DOM HTML Các biểu mẫu DOM DOM CSS Hoạt ảnh DOM Sự kiện DOM Trình xử lý sự kiện DOM Điều hướng DOM Nút DOM Bộ sưu tập DOM Danh sách nút DOM

BOM trình duyệt JS

Cửa sổ JS Màn hình JS Vị trí JS Lịch sử JS JS Navigator JS Popup Alert Thời gian JS JS Cookies

API web JS

Giới thiệu API Web API biểu mẫu web API lịch sử web API lưu trữ web API công nhân web API tìm nạp web API vị trí địa lý web

JS AJAX

Giới thiệu về AJAX AJAX XMLHttp Yêu cầu AJAX Phản hồi AJAX Tệp XML AJAX AJAX PHP AJAX ASP Cơ sở dữ liệu AJAX Ứng dụng AJAX Ví dụ về AJAX

JS JSON

Giới thiệu JSON Cú pháp JSON JSON so với XML Các loại dữ liệu JSON Phân tích cú pháp JSON JSON Stringify Đối tượng JSON Mảng JSON Máy chủ JSON JSON PHP HTML JSON JSON JSONP

JS so với jQuery

Bộ chọn jQuery jQuery HTML jQuery CSS jQuery DOM

Đồ họa JS

Đồ họa JS JS Canvas JS Plotly JS Chart.js JS Google Chart JS D3.js

Ví dụ về JS

Ví dụ về JS JS HTML DOM Đầu vào HTML JS Đối tượng HTML JS Sự kiện HTML JS Trình duyệt JS Trình chỉnh sửa JS Bài tập JS JS Quiz Chứng chỉ JS

Tham khảo JS

Đối tượng JavaScript Đối tượng DOM HTML


JavaScript không đồng bộ

"Ta sẽ hoàn thành sau!"

Các hàm chạy song song với các hàm khác được gọi là không đồng bộ

Một ví dụ điển hình là JavaScript setTimeout ()

JavaScript không đồng bộ

Các ví dụ được sử dụng trong chương trước rất đơn giản hóa.

Mục đích của các ví dụ là để chứng minh cú pháp của các hàm gọi lại:

Thí dụ

function myDisplayer(something) {
  document.getElementById("demo").innerHTML = something;
}

function myCalculator(num1, num2, myCallback) {
  let sum = num1 + num2;
  myCallback(sum);
}

myCalculator(5, 5, myDisplayer);

Trong ví dụ trên, myDisplayerlà tên của một hàm.

Nó được chuyển đến myCalculator()như một đối số.

Trong thế giới thực, các lệnh gọi lại thường được sử dụng nhất với các hàm không đồng bộ.

Một ví dụ điển hình là JavaScript setTimeout().


Đang chờ hết thời gian chờ

Khi sử dụng hàm JavaScript setTimeout(), bạn có thể chỉ định một hàm gọi lại sẽ được thực thi khi hết thời gian:

Thí dụ

setTimeout(myFunction, 3000);

function myFunction() {
  document.getElementById("demo").innerHTML = "I love You !!";
}

Trong ví dụ trên, myFunctionđược sử dụng như một cuộc gọi lại.

myFunctionđược chuyển đến setTimeout()như một đối số.

3000 là số mili giây trước khi hết thời gian, vì vậy myFunction()sẽ được gọi sau 3 giây.

Khi bạn truyền một hàm làm đối số, hãy nhớ không sử dụng dấu ngoặc đơn.

Phải: setTimeout (myFunction, 3000);

Sai: setTimeout (myFunction (), 3000);

Thay vì chuyển tên của một hàm làm đối số cho một hàm khác, bạn luôn có thể chuyển toàn bộ một hàm để thay thế:

Thí dụ

setTimeout(function() { myFunction("I love You !!!"); }, 3000);

function myFunction(value) {
  document.getElementById("demo").innerHTML = value;
}

Trong ví dụ trên, function(){ myFunction("I love You !!!"); } được sử dụng như một cuộc gọi lại. Nó là một chức năng hoàn chỉnh. Hàm hoàn chỉnh được chuyển tới setTimeout () như một đối số.

3000 là số mili giây trước khi hết thời gian, vì vậy myFunction()sẽ được gọi sau 3 giây.


Chờ khoảng thời gian:

Khi sử dụng hàm JavaScript setInterval(), bạn có thể chỉ định một hàm gọi lại sẽ được thực thi cho mỗi khoảng thời gian:

Thí dụ

setInterval(myFunction, 1000);

function myFunction() {
  let d = new Date();
  document.getElementById("demo").innerHTML=
  d.getHours() + ":" +
  d.getMinutes() + ":" +
  d.getSeconds();
}

Trong ví dụ trên, myFunctionđược sử dụng như một cuộc gọi lại.

myFunctionđược chuyển đến setInterval()như một đối số.

1000 là số mili giây giữa các khoảng thời gian, vì vậy myFunction()sẽ được gọi là mỗi giây.


Đang đợi tệp

Nếu bạn tạo một hàm để tải tài nguyên bên ngoài (như tập lệnh hoặc tệp), bạn không thể sử dụng nội dung trước khi nó được tải đầy đủ.

Đây là thời điểm hoàn hảo để sử dụng một cuộc gọi lại.

Ví dụ này tải một tệp HTML ( mycar.html) và hiển thị tệp HTML trong một trang web, sau khi tệp được tải đầy đủ:

Đang đợi tệp:

function myDisplayer(some) {
  document.getElementById("demo").innerHTML = some;
}

function getFile(myCallback) {
  let req = new XMLHttpRequest();
  req.open('GET', "mycar.html");
  req.onload = function() {
    if (req.status == 200) {
      myCallback(this.responseText);
    } else {
      myCallback("Error: " + req.status);
    }
  }
  req.send();
}

getFile(myDisplayer);

Trong ví dụ trên, myDisplayerđược sử dụng như một cuộc gọi lại.

myDisplayerđược chuyển đến getFile()như một đối số.

Dưới đây là bản sao của mycar.html:

mycar.html


<img src="img_car.jpg" alt="Nice car" style="width:100%">

<p>A car is a wheeled, self-powered motor vehicle used for transportation.
Most definitions of the term specify that cars are designed to run primarily on roads, to have seating for one to eight people, to typically have four wheels.</p>

<p>(Wikipedia)</p>