Sách giáo khoa JavaScript nâng cao
Định dạng
Định dạng thông qua thuộc tính style
Đơn vị đo lường trong thuộc tính style
Lỗi với đơn vị đo lường
Giải nén giá trị thuộc tính CSS
Đặt lại định dạng qua style
Thiết lập định dạng hàng loạt
Vấn đề khi đọc định dạng
Đọc thuộc tính từ tệp CSS
Chuyển đổi giá trị đã đọc
Định dạng bằng lớp
Một lớp cho định dạng
Sự bất tiện của lớp
Thay đổi định dạng luân phiên qua data-
Chỉ số của phần tử
Sự mở rộng phần tử trong CSS
Phần tử kiểm tra
Kích thước client của phần tử
Kích thước đầy đủ của phần tử
Kích thước phần tử có thanh cuộn
Cuộn phần tử
Thay đổi vị trí cuộn của phần tử
Cuộn phần tử đến cuối
Mở rộng phần tử
Độ rộng của thanh cuộn
Chỉ số cửa sổ
Kích thước cửa sổ
Kích thước cửa sổ bao gồm thanh cuộn
Lấy vị trí cuộn của cửa sổ
Lấy và thay đổi vị trí cuộn của cửa sổ
Phương thức cuộn cửa sổ đến vị trí
Phương thức cuộn cửa sổ theo giá trị
Phương thức cuộn cửa sổ đến phần tử
Sự kiện cuộn
Bộ sưu tập Map
Bộ sưu tập Set
Giới thiệu
Điền dữ liệu ban đầu
Tính năng hữu ích
Duyệt bằng vòng lặp
Chuyển đổi
Xóa phần tử trùng lặp khỏi mảng
Lấy dữ liệu không trùng lặp
Mảng giả
Giới thiệu
Điểm tương đồng với mảng
Sự khác biệt
Kiểm tra đối tượng có phải là mảng
Chuyển đổi thành mảng
Các loại mảng giả
Sự khác biệt giữa các loại
Ký hiệu (Symbol)
Giới thiệu về kiểu Symbol
Mô tả của Symbol
Symbol làm khóa của đối tượng
Duyệt đối tượng có chứa Symbol
Hàm trong đối tượng
Các thao tác với đối tượng trong hàm
Symbol toàn cục
Lấy tên của Symbol
Symbol được biết đến rộng rãi
Trình lặp (Iterators)
Đối tượng có thể lặp
Hàm trình lặp
Các lần gọi trình lặp
Trình tạo (Generators)
Vòng lặp trong trình tạo
Công việc một lần của trình lặp
Trình lặp của đối tượng
Tạo đối tượng có thể lặp
Trình tạo thông qua thuộc tính tính toán
Trình lặp values có sẵn
Trình lặp keys có sẵn
Trình lặp entries có sẵn
Ba trình lặp có sẵn
Toán tử spread và trình lặp
Trình lặp có sẵn của chuỗi
Mảng các chữ số của số
Đánh số các phần tử DOM
Lấy dữ liệu của các phần tử DOM
Định dạng JSON
Kho lưu trữ
Giới thiệu
Kho lưu trữ trong công cụ gỡ lỗi
Dữ liệu
Lưu trữ một lần
Ghi đè dữ liệu
Xóa dữ liệu
Xóa sạch kho lưu trữ
Số lượng bản ghi
Lấy khóa theo số thứ tự
Duyệt kho lưu trữ theo chỉ số
Mảng khóa và giá trị của kho lưu trữ
Lưu trữ cấu trúc
Chỉnh sửa cấu trúc đã lưu trữ
Thực hành
Biểu thức chính quy
Giới thiệu
Toán tử lặp
Dấu ngoặc nhóm
Escaping ký tự đặc biệt
Dấu ngoặc nhọn
Giới hạn tính tham lam
Nhóm ký tự
Tập hợp ký tự
Đảo ngược tập hợp ký tự
Đặc điểm của chữ Kirin
Ký tự đặc biệt bên trong tập hợp
Nhóm ký tự bên trong tập hợp
Ký tự đặc biệt loại trừ bên trong tập hợp
Ký tự dấu mũ bên trong tập hợp
Đặc điểm của dấu gạch ngang bên trong tập hợp
Bỏ qua chữ hoa chữ thường
Đầu và cuối dòng
Ranh giới từ
Đa dòng
Lệnh 'hoặc'
Biến với biểu thức chính quy
Phương thức test
Phương thức search
Phương thức split
Phương thức match
Nhóm bắt giữ trong phương thức match
Match toàn cục
MatchAll toàn cục
Phương thức exec
Thuộc tính lastIndex
Nhóm bắt giữ trong phương thức replace
Callback trong phương thức replace
Nhóm bắt giữ mặc định trong phương thức replace
Nhóm bắt giữ trong chính biểu thức
Nhóm bắt giữ có tên
Nhóm bắt giữ có tên bên trong biểu thức
Dấu ngoặc không lưu giữ
Xem trước tích cực và tiêu cực
Chuỗi với biểu thức chính quy
Cờ cho chuỗi
Dấu gạch chéo ngược trong chuỗi
Tình huống ngoại lệ
Giới thiệu
Các loại tình huống phát sinh
Bắt ngoại lệ
Phát triển với try-catch
Bắt ngoại lệ trong mã lồng nhau
Đối tượng với ngoại lệ
Các loại ngoại lệ cơ bản
Áp dụng các loại ngoại lệ
Ném ngoại lệ
Ném các loại ngoại lệ khác nhau
Ném các loại ngoại lệ của riêng mình
Ví dụ ngoại lệ với thuộc tính data-
Ví dụ ngoại lệ với JSON
Ném lại ngoại lệ
Tính bất đồng bộ
Mã đồng bộ và mã bất đồng bộ
Tính bất đồng bộ của mô hình sự kiện
Tính bất đồng bộ của việc tải hình ảnh
Các tình huống ngoại lệ trong mã bất đồng bộ
Callback Bất đồng bộ
Giới thiệu
Truyền kết quả bất đồng bộ vào callback
Truyền tham số vào callback bất đồng bộ
Xử lý ngoại lệ trong callback bất đồng bộ
Tải hình ảnh
Vấn đề callback hell
Tải hình ảnh bất đồng bộ trong vòng lặp
Promise
Giới thiệu về Promise
Tình huống ngoại lệ
Đối tượng lỗi
Xử lý ngoại lệ riêng biệt
Trạng thái của Promise
Chuỗi Promise
Promise bên trong chuỗi
Ngoại lệ trong chuỗi Promise
Làm việc với mảng Promise
Tạo Promise đã hoàn thành
Promisification mã bất đồng bộ
Vấn đề promise hell
Promise theo phong cách đồng bộ
Ngoại lệ theo phong cách đồng bộ
Thư viện
Công cụ
Định phiên bản ngữ nghĩa
Terminal
NodeJS
Giới thiệu về npm
Cài đặt qua npm
Mẫu cài đặt ngắn gọn
Các phụ thuộc trong file package.json
Các phụ thuộc Dev
Các định dạng phiên bản phụ thuộc
Cài đặt file package.json
Tạo file package.json
Chuyển dự án npm
File package-lock.json
Cập nhật gói
Gỡ bỏ gói
Cài đặt toàn cục qua npm
Gỡ bỏ gói toàn cục
Công cụ npx
Chạy script qua npm
Trình quản lý Yarn
Mô-đun ES
Giới thiệu về mô-đun
Bật mô-đun ES
Cài đặt Webpack
Nguyên tắc hoạt động của Webpack
Cấu hình Webpack
Cấu hình khởi chạy build Webpack
Build thử nghiệm qua Webpack
Kết nối bundle với markup
Tạo mô-đun ES
Kết nối mô-đun ES
Đổi tên khi import
Import toàn bộ nội dung mô-đun
Export mặc định
Kết hợp export
Import toàn bộ nội dung khi kết hợp export
Export giá trị
Giá trị như hằng số
Import mô-đun npm
Import động
Import động nhiều mục
Chuyển đổi mô-đun CommonJS
Giao thức HTTP
Máy chủ kiểm thử
Biểu mẫu
Gửi biểu mẫu
Phương thức gửi biểu mẫu
Gửi biểu mẫu bằng phương thức GET
Gửi biểu mẫu bằng phương thức POST
GET query
Ứng dụng GET query
Nút trong biểu mẫu
Gửi biểu mẫu thông qua JavaScript
Ngăn chặn gửi biểu mẫu
Giới thiệu FormData
Phương thức của FormData
Iterator của FormData
AJAX
Giới thiệu về AJAX
Cơ bản về làm việc với fetch
Mã HTTP phản hồi
Tính thành công của yêu cầu
Các tình huống ngoại lệ
Bắt lỗi đầy đủ
Tiêu đề HTTP phản hồi
Nhận JSON
Tiêu đề HTTP yêu cầu
Yêu cầu GET
Yêu cầu POST
Dữ liệu qua URLSearchParams
Dữ liệu qua FormData
Gửi toàn bộ biểu mẫu
Gửi JSON
Chính sách CORS
Truyền cookie
Phong cách đồng bộ
Làm việc với Canvas
Bắt đầu làm việc
Vẽ đường thẳng
Vẽ hình chữ nhật
Vẽ hình tròn
Thay đổi màu đường kẻ
Thay đổi độ dày đường kẻ
Vòng lặp
Tối ưu hóa mã
Các yếu tố tốc độ tải trang web
Tài nguyên có sẵn
Tối ưu hóa các thao tác lặp lại
Tối ưu hóa việc lặp lại các thao tác nặng
Tối ưu hóa các thao tác vòng lặp
Tối ưu hóa các lượt duyệt thừa của vòng lặp
Tối ưu hóa qua các hàm dựng sẵn
Lựa chọn thuật toán tối ưu
Tối ưu hóa việc sử dụng biểu thức chính quy
Tối ưu hóa làm việc với DOM
Tối ưu hóa tiêu thụ bộ nhớ
Tối ưu hóa chuyển đổi thành mảng
Tối ưu hóa bộ xử lý sự kiện
Tối ưu hóa tốc độ bằng cách đánh đổi bộ nhớ