Hướng dẫn JavaScript cơ bản
Cơ bản
Giới thiệu
Chạy JavaScript
Chương trình JavaScript đầu tiên
Phân tích mã chương trình
Các ví dụ tiếp theo
Các file chứa script
Nhiều file
Lưu ý
Bộ nhớ đệm file
Chế độ nghiêm ngặt
Chú thích
Biến
Sử dụng biến
Khai báo nhiều biến
Thay đổi giá trị biến
Nhiều lệnh let cho một biến
Các phép toán số học với số
Các phép toán số học với biến
Thứ tự ưu tiên của các phép toán
Ưu tiên bằng nhau
Dấu ngoặc nhóm
Phân số
Số âm
Dấu cộng trước biến
Phép chia lấy dư
Lũy thừa
Ưu tiên của phép lũy thừa
Chuỗi
Nối chuỗi
Độ dài chuỗi
Chuỗi mẫu
Chuỗi nhiều dòng
Các giá trị đặc biệt
Giá trị undefined
Giá trị null
Các giá trị true và false
Giá trị NaN
Infinity và -Infinity
Console
Kiểu dữ liệu trong console
Lỗi trong console
Hằng số
Chuyển đổi kiểu tự động
Chuyển đổi sang số
Chuyển đổi ngắn sang số
Chuyển đổi số không chính xác
Trích xuất số
Chuyển đổi sang chuỗi
Áp dụng chuyển đổi sang chuỗi
Chuyển đổi kiểu logic
Chuyển đổi sang kiểu logic
Ký tự của chuỗi
Tính bất biến của chuỗi
Ký tự cuối cùng của chuỗi
Chuỗi chứa chữ số
Truy cập các chữ số của số
Các phép toán để thay đổi biến
Các phép toán viết tắt trong JavaScript
Tăng giá trị
Dạng tiền tố và hậu tố
Tính toán không chính xác
Hàm prompt
Vấn đề với kiểu dữ liệu trong prompt
Xuất ra tài liệu
Thực hành tìm lỗi
Thực hành các phép toán
Thực hành công thức
Mảng
Giới thiệu về mảng
Lấy phần tử
Độ dài mảng
Thay đổi phần tử
Ghi đè phần tử mảng
Tăng giá trị phần tử
Thêm phần tử theo khóa
Mảng thưa
Thêm phần tử qua push
Khóa từ biến
Toán tử delete
Thực hành tìm lỗi
Đối tượng
Giới thiệu về đối tượng
Hiển thị toàn bộ đối tượng
Khóa đối tượng dạng chuỗi
Thuộc tính đối tượng
Hạn chế về khóa đối tượng
Thay đổi phần tử
Thêm phần tử
Tính không có thứ tự của đối tượng
Mảng khóa của đối tượng
Độ dài đối tượng
Khóa từ biến
Lỗi truy cập phần tử
Lỗi truy cập thuộc tính
Thuộc tính được tính toán
Toán tử in
Toán tử delete
Kiểu hóa đối tượng
Mảng như đối tượng
Phân biệt mảng với đối tượng
Đối tượng và kiểu nguyên thủy
Truyền đối tượng theo tham chiếu
Hằng số
Cách tiếp cận lập trình qua hằng số
Thực hành tìm lỗi
Điều kiện
Cấu trúc if-else
Các toán tử lớn hơn và nhỏ hơn
Kiểm tra sự bằng nhau
Kiểm tra sự không bằng nhau
So sánh biến
Sự bằng nhau của chuỗi
Sự bằng nhau của chuỗi và số
Sự bằng nhau về giá trị và kiểu dữ liệu
Sự không bằng nhau về giá trị và kiểu dữ liệu
Toán tử logic VÀ (AND)
Toán tử logic HOẶC (OR)
Độ ưu tiên của toán tử logic
Nhóm các điều kiện
Đảo ngược biểu thức logic
Điều kiện với giá trị Boolean
So sánh giá trị với kiểu Boolean
Dạng rút gọn kiểm tra giá trị đúng (truthy)
Dạng rút gọn kiểm tra giá trị sai (falsy)
Dạng rút gọn kiểm tra tổng quát
Điều kiện phức tạp ở dạng rút gọn
Tính không bắt buộc của cấu trúc else
Tính không bắt buộc của dấu ngoặc nhọn
Vấn đề về tính không bắt buộc của dấu ngoặc
Cấu trúc else if
Cấu trúc if-else lồng nhau
Cấu trúc switch-case
Tính không bắt buộc của break
Toán tử ba ngôi (Ternary)
Các phép toán logic
Hàm confirm
Phạm vi (Scope)
Những sắc thái của phạm vi
Kiểm tra các phần của giờ
Kiểm tra độ dài của chuỗi và mảng
Kiểm tra các ký tự của chuỗi
Kiểm tra các chữ số của số
Kiểm tra phần dư của phép chia
Thực hành tìm lỗi
Bài tập thực hành
Vòng lặp
Giới thiệu
Vòng lặp for-of
Vòng lặp for-in
Vòng lặp while
Vòng lặp for
Vòng lặp for cho mảng
Điều kiện trong vòng lặp
Tích lũy tổng số
Tích lũy tổng phần tử
Hình thành chuỗi
Chữ số của số
Tính không bắt buộc của dấu ngoặc nhọn
Vấn đề của tính không bắt buộc dấu ngoặc
Lệnh break
Lệnh continue
Vòng lặp lồng nhau
Phạm vi hiển thị
Vòng lặp lồng nhau và phạm vi hiển thị
Điền vào mảng
Thay đổi mảng
Điền vào đối tượng
Thay đổi đối tượng
Làm việc với cờ
Lời khuyên về viết mã
Lời khuyên về gỡ lỗi mã
Thực hành tìm lỗi
Thực hành
Đa chiều
Mảng đa chiều
Mảng ba chiều
Mảng tùy ý
Duyệt mảng đa chiều
Duyệt qua for thông thường
Điền mảng đa chiều
Vấn đề khi điền mảng đa chiều
Điền mảng đa chiều theo thứ tự
Đối tượng đa chiều
Duyệt đối tượng đa chiều
Cấu trúc đa chiều
Duyệt cấu trúc đa chiều
Mảng đối tượng
Khóa từ biến
Thêm phần tử vào mảng
Thêm phần tử vào đối tượng
Phương thức chuẩn
Lũy thừa
Hàm làm tròn
Cực trị
Ngẫu nhiên
Giá trị tuyệt đối
Chữ hoa chữ thường
Cắt chuỗi
Tìm kiếm trong chuỗi
Thay thế trong chuỗi
Tách chuỗi
Phần tử đầu cuối
Phần của mảng
Cắt mảng
Tìm kiếm trong mảng
Khóa của đối tượng
Thực hành tìm lỗi
Hàm người dùng tùy chỉnh
Giới thiệu
Tham số hàm
Nhiều tham số
Tham số biến
Tham số tùy chọn
Câu lệnh return
Gọi hàm tuần tự
Điểm tinh tế của return
Vòng lặp và return
Áp dụng return trong vòng lặp
Thủ thuật làm việc với return
Cờ trong hàm
Toán tử logic trong hàm
Lời khuyên về hàm
Thực hành tìm lỗi
Thực hành về hàm
Biến số của hàm
Biến toàn cục
Biến cục bộ
Sự trùng tên biến số
Thay đổi biến toàn cục
Biến toàn cục và tham số hàm
Sự trùng tên với tham số
Tham số là đối tượng
Các loại hàm
Mã nguồn hàm và kết quả
Hàm như một biến
Ghi hàm vào một biến khác
Gán hàm vào các biến
Trùng tên hàm và biến
Các kiểu khai báo
Sự khác biệt khi khai báo hàm
Dấu chấm phẩy khi khai báo hàm
Sắc thái của biểu thức hàm
Hàm có tên nhưng là Function Expression
Biểu thức hàm có tên
Cách kiểm tra loại hàm
Biểu thức bên trái
Biểu thức bên phải
Mảng chứa hàm
Đối tượng chứa hàm
Áp dụng đối tượng chứa hàm
Hàm lồng nhau
Truyền hàm dưới dạng tham số
Hàm có tên
Tham số của các hàm được truyền
Truyền số dưới dạng tham số
Ứng dụng
Hàm bên trong
Phạm vi hiển thị của hàm lồng nhau
Tham số của hàm bên ngoài
Tham số của hàm bên ngoài và bên trong
Tham số trùng tên
Hàm trả về hàm
Bất kỳ mức độ lồng nhau nào
Tham số của hàm được trả về
Hàm callback
Sắc thái của callback
Hàm mũi tên
Ứng dụng hàm mũi tên
đồng bộ với bản dịch
Closures
Truy cập biến bên ngoài
Môi trường từ vựng của hàm
Ứng dụng môi trường từ vựng
Giới thiệu về Closures
Bộ đếm sử dụng Closures
Sắc thái biến cục bộ
Sắc thái biến toàn cục
IIFE
Gọi hàm ngay lập tức
Gán hàm vào biến
Ứng dụng của việc gọi hàm ngay lập tức
Dấu ngoặc tròn
Tham số
Nhiều lần gọi
Cạm bẫy
Dấu chấm phẩy bảo vệ
Closures và IIFE
Đệ quy
Giới thiệu
Ví dụ với tham số
Tổng các phần tử mảng bằng đệ quy
Cấu trúc đa chiều
Tổng các phần tử mảng
Thao tác với cấu trúc
Các phương thức lặp
Phương thức map
Phương thức forEach
Phương thức filter
Phương thức every
Phương thức some
Phương thức find
bản dịch, nhiệm vụ
Phương thức reduce
bản dịch, nhiệm vụ
Toán tử spread
Toán tử rest
Phá Cấu Trúc
Phá cấu trúc mảng
Mảng từ hàm
Bỏ qua phần tử mảng
Giá trị thừa của mảng
Phần còn lại của mảng
Giá trị mặc định cho mảng
Hàm mặc định cho mảng
Khai báo biến cho mảng
Phá cấu trúc đối tượng
Tên biến cho đối tượng
Giá trị mặc định cho đối tượng
Biến và giá trị mặc định cho đối tượng
Khai báo biến cho đối tượng
Tham số hàm
Phá cấu trúc tham số đối tượng của hàm
Thời gian
Làm việc với đối tượng Date
Định dạng
Thay đổi định dạng ngày tháng
Lấy thứ trong tuần
Xuất ngày tháng bằng chữ
Thiết lập thời gian
Định dạng timestamp
Hiệu số giữa các timestamp
Hiệu số giữa các đối tượng ngày tháng
Điều chỉnh tự động ngày tháng
Tìm ngày cuối cùng của tháng
Xác định năm nhuận
Kiểm tra tính chính xác
Lấy ngày của năm hiện tại
Ngày của tháng tiếp theo hoặc tháng trước
Ngày của năm tiếp theo hoặc năm trước
Hiệu số các thời điểm
Thời điểm trong ngày
Đầu ngày
Cuối ngày
Kiểm tra thời điểm theo chu kỳ
Thực hành lấy thời điểm
So sánh chuỗi
So sánh ngày tháng không tính năm
Ngày tháng rơi vào khoảng thời gian
So sánh các đối tượng ngày tháng
Giới thiệu về DOM
Giới thiệu
Các phần tử DOM
Lấy phần tử DOM
Bộ chọn phức tạp cho phần tử DOM
Ràng buộc trình xử lý
Trình xử lý có tên
Một trình xử lý cho nhiều phần tử
Nhiều trình xử lý cho một sự kiện
Trình xử lý cho các sự kiện khác nhau
Văn bản của phần tử
Mã HTML của phần tử
Thuộc tính thẻ như là thuộc tính đối tượng
Làm việc với trường văn bản
Tiêu điểm của trường văn bản
Các thuộc tính ngoại lệ
Chuỗi phương thức và thuộc tính
Ưu điểm và nhược điểm của chuỗi
Đối tượng this
Ưu điểm của this
Lấy một nhóm phần tử
Trình xử lý có tên trong vòng lặp
Trình xử lý ẩn danh trong vòng lặp
Hủy ràng buộc trình xử lý sự kiện
Hủy ràng buộc trình xử lý trong vòng lặp
Hủy ràng buộc trình xử lý ẩn danh
Lời khuyên về viết mã
Thực hành tìm lỗi
Bài thực hành
Thuộc tính
Phương thức lấy thuộc tính
Phương thức thiết lập thuộc tính
Phương thức xóa thuộc tính
Phương thức kiểm tra thuộc tính
Thuộc tính tùy chỉnh
Tên thuộc tính có dấu gạch ngang
Truy cập thuộc tính qua phương thức
Mảng CSS classes
Thêm CSS classes
Xóa CSS classes
Kiểm tra CSS classes
Bật tắt CSS classes
Định kiểu
Định kiểu qua thuộc tính style
Định kiểu các thuộc tính có dấu gạch ngang
Ngoại lệ khi định kiểu phần tử
Định kiểu qua CSS class
Ưu điểm của việc định kiểu bằng CSS class
Áp dụng định kiểu
Tìm kiếm
Tìm phần tử con cháu
Tìm phần tử cha mẹ
Tìm tất cả các phần tử cha mẹ
Tìm phần tử anh chị em
Tìm phần tử theo id
Tìm phần tử theo tên thẻ
Tìm phần tử theo tên lớp
Tìm kiếm bên trong phần tử
Nút
Biểu mẫu
Làm việc với textarea
Khóa các phần tử
Làm việc với checkbox
Luân phiên thuộc tính không có giá trị
Làm việc với nút radio
Sự kiện change
Sự kiện input
Các phương thức focus và blur
Thực hành tìm lỗi
Danh sách thả xuống
Làm việc với danh sách thả xuống
Thuộc tính value trong danh sách thả xuống
Thay đổi mục đã chọn trong danh sách
Số thứ tự của mục đã chọn trong danh sách
Lấy các mục của danh sách thả xuống
Các mục dưới dạng mảng
Làm việc với các mục của danh sách thả xuống
Chọn mục trong danh sách
Lấy mục đã chọn
Đối tượng Event
Cơ bản làm việc với đối tượng Event
Tọa độ sự kiện
Loại sự kiện
Phần tử sự kiện
Lấy các phím đang nhấn
Theo dõi các phím bổ trợ
Hủy hành động mặc định
Bong bóng sự kiện
Phần tử mục tiêu khi nổi bong bóng
Ngừng bong bóng sự kiện
Nhiều trình xử lý trên một phần tử
Ngừng bong bóng ngay lập tức
Ứng dụng của việc ngừng bong bóng sự kiện
Chìm sự kiện
Trình xử lý trên các phần tử mới
Ủy thác sự kiện
Ủy thác sự kiện phổ quát
Ngữ Cảnh
Cơ bản về làm việc với ngữ cảnh
Ngữ cảnh của hàm không được ràng buộc
Mất ngữ cảnh
Giải quyết vấn đề với ngữ cảnh
Giải pháp thông qua biến
Giải pháp thông qua tham số
Giải pháp thông qua hàm mũi tên
Phương thức call
Phương thức call với tham số
Phương thức apply
Phương thức bind
Bộ hẹn giờ
Khởi chạy bộ hẹn giờ
Bộ đếm trên bộ hẹn giờ
Dừng bộ hẹn giờ
Nút để khởi chạy
Khởi chạy nhiều lần
Nút để dừng
Làm việc với DOM
Bộ hẹn giờ và mất ngữ cảnh
Thực hành với bộ hẹn giờ và DOM
Độ trễ trước khi thực thi
Bộ hẹn giờ qua độ trễ
Thao tác với phần tử
Tạo và chèn phần tử
Gắn sự kiện khi chèn
Tạo phần tử trong vòng lặp
Gắn trình xử lý trong vòng lặp
Xóa phần tử
Chèn ở rìa
Chèn phía trước
Chèn liền kề
Chèn thẻ liền kề
Nhân bản phần tử
Kiểm tra phần tử
Thực hành
Tạo phần tử từ mảng
Thực hành tạo danh sách ul
Tạo bảng
Điền tuần tự vào bảng
Tạo bảng từ mảng
Tạo bảng từ mảng đối tượng
Thêm hàng và cột vào bảng
Chỉnh sửa ô bảng
Xóa phần tử mới
Liên kết để xóa phần tử
Tạo liên kết xóa
Chỉnh sửa phần tử riêng lẻ
Ẩn văn bản khi chỉnh sửa
Chỉnh sửa trong nhóm phần tử
Xóa và chỉnh sửa
Định kiểu phần tử
Nút để ẩn và hiện phần tử
Nhiều phần tử với nút hiển thị
Kích hoạt phần tử
Thay đổi luân phiên kiểu kích hoạt
Thực hành thay đổi phần tử
Hàm và DOM
Hàm làm việc với phần tử DOM
Hàm làm việc với nhóm phần tử
Truyền callback để làm việc với DOM
Truyền số thứ tự vào callback
Truyền phần tử làm tham số hàm
Truyền nhóm phần tử làm tham số
Hàm tạo bảng HTML
Trả về bảng từ hàm
Hàm tạo bảng từ mảng