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


Phạm vi JavaScript

Phạm vi xác định khả năng tiếp cận (khả năng hiển thị) của các biến.

JavaScript có 3 loại phạm vi:

  • Phạm vi khối
  • Phạm vi chức năng
  • Phạm vi toàn cầu

Phạm vi khối

Trước ES6 (2015), JavaScript chỉ có Phạm vi toàn cầu và Phạm vi chức năng .

ES6 đã giới thiệu hai từ khóa JavaScript mới quan trọng: letconst.

Hai từ khóa này cung cấp Phạm vi khối trong JavaScript.

Các biến được khai báo bên trong khối {} không thể được truy cập từ bên ngoài khối:

Thí dụ

{
  let x = 2;
}
// x can NOT be used here

Các biến được khai báo với vartừ khóa KHÔNG được có phạm vi khối.

Các biến được khai báo bên trong khối {} có thể được truy cập từ bên ngoài khối.

Thí dụ

{
  var x = 2;
}
// x CAN be used here

Phạm vi địa phương

Các biến được khai báo trong một hàm JavaScript, trở thành ĐỊA PHƯƠNG đối với hàm.

Thí dụ

// code here can NOT use carName

function myFunction() {
  let carName = "Volvo";
  // code here CAN use carName
}

// code here can NOT use carName

Biến cục bộ có Phạm vi chức năng :

Chúng chỉ có thể được truy cập từ bên trong hàm.

Vì các biến cục bộ chỉ được nhận dạng bên trong các hàm của chúng, các biến có cùng tên có thể được sử dụng trong các hàm khác nhau.

Các biến cục bộ được tạo khi một hàm khởi động và bị xóa khi hoàn thành hàm.


Phạm vi chức năng

JavaScript có phạm vi chức năng: Mỗi chức năng tạo ra một phạm vi mới.

Các biến được xác định bên trong một hàm không thể truy cập (nhìn thấy được) từ bên ngoài hàm.

Các biến được khai báo bằng varlet khá constgiống nhau khi được khai báo bên trong một hàm.

Tất cả chúng đều có Phạm vi chức năng :

function myFunction() {
  var carName = "Volvo";   // Function Scope
}
function myFunction() {
  let carName = "Volvo";   // Function Scope
}
function myFunction() {
  const carName = "Volvo";   // Function Scope
}

Các biến JavaScript toàn cầu

Một biến được khai báo bên ngoài một hàm, sẽ trở thành GLOBAL .

Thí dụ

let carName = "Volvo";
// code here can use carName

function myFunction() {
// code here can also use carName
}

Một biến toàn cục có Phạm vi toàn cầu :

Tất cả các tập lệnh và chức năng trên một trang web đều có thể truy cập nó. 


Phạm vi toàn cầu

Các biến được khai báo Toàn cầu (bên ngoài bất kỳ hàm nào) có Phạm vi toàn cầu .

Các biến toàn cục có thể được truy cập từ bất kỳ đâu trong chương trình JavaScript.

Các biến được khai báo với varkhá giống nhau khi được khai báo bên ngoài một khối.letconst

Tất cả đều có Phạm vi toàn cầu :

var x = 2;       // Global scope
let x = 2;       // Global scope
const x = 2;       // Global scope

Các biến JavaScript

Trong JavaScript, các đối tượng và hàm cũng là các biến.

Phạm vi xác định khả năng truy cập của các biến, đối tượng và chức năng từ các phần khác nhau của mã.



Tự động toàn cầu

Nếu bạn gán giá trị cho một biến chưa được khai báo, nó sẽ tự động trở thành một biến TOÀN CẦU .

Ví dụ mã này sẽ khai báo một biến toàn cục carName, ngay cả khi giá trị được gán bên trong một hàm.

Thí dụ

myFunction();

// code here can use carName

function myFunction() {
  carName = "Volvo";
}

chế độ nghiêm ngặt

Tất cả các trình duyệt hiện đại đều hỗ trợ chạy JavaScript ở "Chế độ nghiêm ngặt".

Bạn sẽ tìm hiểu thêm về cách sử dụng chế độ nghiêm ngặt trong chương sau của hướng dẫn này.

Trong "Chế độ nghiêm ngặt", các biến chưa được khai báo không tự động có tính toàn cục.


Biến toàn cục trong HTML

Với JavaScript, phạm vi toàn cầu là môi trường JavaScript.

Trong HTML, phạm vi toàn cục là đối tượng cửa sổ.

Các biến toàn cục được xác định với vartừ khóa thuộc về đối tượng window:

Thí dụ

var carName = "Volvo";
// code here can use window.carName

Các biến toàn cục được xác định bằng lettừ khóa không thuộc đối tượng window:

Thí dụ

let carName = "Volvo";
// code here can not use window.carName

Cảnh báo

KHÔNG tạo biến toàn cục trừ khi bạn có ý định.

Các biến toàn cục (hoặc các hàm) của bạn có thể ghi đè các biến cửa sổ (hoặc các hàm).
Bất kỳ hàm nào, kể cả đối tượng window, đều có thể ghi đè lên các biến và hàm toàn cục của bạn.


Thời gian tồn tại của các biến JavaScript

Thời gian tồn tại của một biến JavaScript bắt đầu khi nó được khai báo.

Các biến hàm (cục bộ) bị xóa khi hoàn thành hàm.

Trong trình duyệt web, các biến toàn cục sẽ bị xóa khi bạn đóng cửa sổ trình duyệt (hoặc tab).


Đối số hàm

Các đối số của hàm (tham số) hoạt động như các biến cục bộ bên trong các hàm.