1
2
MC LC
LỜI NÓI ĐẦU ..................................................................................................................................... 5
NI DUNG CUN SÁCH .................................................................................................................. 7
CUN SÁCH NÀY DÀNH CHO AI? ................................................................................................ 9
Yêu cầu trình độ ............................................................................................................................................... 9
Cách học đúng cách ........................................................................................................................................ 9
GII THIU ..................................................................................................................................... 11
Lch s Javascript ......................................................................................................................................... 12
Ti sao nên hc Javascript? ...................................................................................................................... 12
TNG QUAN JAVASCRIPT ........................................................................................................... 15
Ưu điểm ca Javascript .............................................................................................................................. 15
Gii hn ca Javascript .............................................................................................................................. 17
Công c phát trin ........................................................................................................................................ 17
Thực thi chương trình Javascript .......................................................................................................... 18
Tạo chương trình Javascript đu tiên ................................................................................................. 19
CÚ PHÁP JAVASCRIPT CƠ BN ................................................................................................. 23
Variable - Biến ............................................................................................................................................... 23
Variable Scope - Phạm vi sử dụng của một biến ........................................................................ 25
S khác nhau gia var let .............................................................................................................. 28
Khái niệm và cơ chế Hoisting ............................................................................................................. 29
Kiểu dữ liệu ..................................................................................................................................................... 31
Toán t - Operators ..................................................................................................................................... 34
Toán t s hc ........................................................................................................................................... 35
Toán tử so sánh........................................................................................................................................ 36
Toán t logic............................................................................................................................................... 37
Toán t gán ................................................................................................................................................. 38
Toán t điu kin rút gn .................................................................................................................... 39
3
Làm vic với điều kin và cấu trúc có điều kin ............................................................................ 39
if...else Statements .................................................................................................................................... 39
Switch Statements.................................................................................................................................... 40
CÚ PHÁP JAVASCRIPT NÂNG CAO ............................................................................................ 42
Function ............................................................................................................................................................ 42
Cách định nghĩa một function ............................................................................................................ 44
Tham s và phm vi ................................................................................................................................ 45
Nested scope .............................................................................................................................................. 46
Pure function và non-pure function ................................................................................................ 47
Loop - vòng lp .............................................................................................................................................. 48
Vòng lp là gì? ............................................................................................................................................ 48
Ti sao phi dùng vòng lp .................................................................................................................. 48
Vòng lp for (…) ........................................................................................................................................ 49
Vòng lp while() {…} ............................................................................................................................... 51
Vòng lp do {...} while() .......................................................................................................................... 52
Câu lệnh breakcontinue trong vòng lặp .................................................................................. 52
D LIU CÓ CU TRÚC ................................................................................................................ 56
Object ................................................................................................................................................................. 56
Thuc tính riêng và thuc tính kế tha ......................................................................................... 58
Cách to Object .......................................................................................................................................... 59
Truy xut thông tin Object ................................................................................................................... 63
Truy xut hàng lot keys ca Object ............................................................................................... 64
Xóa thuc tính ca Object..................................................................................................................... 66
Array .................................................................................................................................................................. 67
Cách khai báo Array ................................................................................................................................ 67
Truy cp vào phn t mng ................................................................................................................ 68
Các thao tác làm vic vi mng.......................................................................................................... 69
HIGHER-ORDER FUNCTION ....................................................................................................... 80
Khái nim Higher-Order Functions ..................................................................................................... 80
4
Functional Programming ..................................................................................................................... 81
First-Class Functions .............................................................................................................................. 81
Higher-Order Functions là gì? ............................................................................................................ 81
Ví d minh ha Higher-Order function .......................................................................................... 83
Tìm hiu k hơn về Callback ................................................................................................................... 87
Promise ............................................................................................................................................................. 92
Async/Await ................................................................................................................................................... 98
LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG VI JS ............................................................................ 102
Nguyên lý lập trình hướng đối tưng (OOP) ................................................................................ 102
Javascript có hướng đối tượng không? ........................................................................................... 104
Tính kế tha ................................................................................................................................................. 105
Tính đóng gói .............................................................................................................................................. 108
Tính đa hình và trừu tượng .................................................................................................................. 109
CÚ PHÁP ES6 ................................................................................................................................ 113
String ............................................................................................................................................................... 114
Function ......................................................................................................................................................... 118
Class ................................................................................................................................................................. 120
Destructuring .............................................................................................................................................. 124
Object Destructuring ........................................................................................................................... 124
Array Destructuring ............................................................................................................................ 125
Spread operator (...) ................................................................................................................................. 126
Modules.......................................................................................................................................................... 129
Export ......................................................................................................................................................... 129
Import ........................................................................................................................................................ 130
JAVASCRIPT FRAMEWORK ..................................................................................................... 132
BÀI TP ......................................................................................................................................... 135
KT NI VI VNTALKING ....................................................................................................... 144
THÔNG TIN TÁC GI ................................................................................................................. 145
CUN SÁCH CA VNTALKING ................................................................................................ 146
5
LỜI NÓI ĐẦU
Hầu hết mọi người khi bắt đầu học lập trình web đều nhận được lời khuyên
bắt đầu từ HTML. Tuy nhiên, bản thân HTML không nhiều tương tác
logic để bạn có thể học.
thể bạn không biết, phần lớn những tương tác giữa trang web với người
dùng như: hiện popup, hiệu ứng chuyển động, slideshow ảnh hay gửi dữ liệu
lên server… ch yếu được thực hiện bằng Javascript.
Để phát trin các ng dụng web tương tác với người dùng như vy, bn cn
phi biết Javascript.
Vic t hc Javascript không h khó, ch cn bn hiểu được ởng ban đầu
ca nó, thì vic hc s cc d dàng.
Cun sách này s giúp bn giải đáp những câu hi, những trăn trở khi t mày
tìm hiu Javascript, cũng như trang b nhng kiến thc t nn tng ti
nâng cao v javascript, đặc bit phù hp vi nhng người chưa kinh
nghim lp trình thc tế.
Đim xut phát ca bn có th rơi vào 2 trường hp sau:
Javascript là ngôn ng lp trình đầu tiên mà bn tiếp cn. Có th bn
tình được nghe ti Javascript hoặc được bn gii thiu "Javascript
là ngôn ng lp trình d hc nht".
Bạn đã từng hc làm vic trên các ngôn ng lập trình khác như
Java, C#, Python... Do điều kin ngoi cảnh như chuyển d án, nghe
li qung cáo thn thánh hóa ca các cao nhân trên mng v Javascript.
Hoc có th bn có duyên vi Javascript mà yêu thích ngôn ng lp trình
này, mun tìm hiu và kết thân vi nó.