Chương 1: Biến và các kiểu dữ liệu thường gặp
Bài 1: Lời giới thiệu, cám ơn và hướng dẫn quan trọng cần nắm
Bài 2: 2 cách chèn Javascript vào HTML
Bài 3: Tìm hiểu hàm console.log
Bài 4: Kiến thức về biến cần nắm
Bài 5: Khai báo biến với const và let
Bài 6: Hoisting là gì ?
Bài 6.5: Bổ sung kiến thức hoisting
Chương 2: Các kiểu dữ liệu thông dụng trong Javascript
Bài 7: Giới thiệu kiểu dữ liệu string
Bài 8: Sử dụng string cơ bản
Bài 9: index và length trong string cần nắm
Bài 10: Các phương thức trong string phần 1
Bài 11: Các phương thức trong string phần 2
Bài 12: Phân biệt substr và substring
Bài 13: Sử dụng nhiều phương thức của string cùng lúc
Bài 14: Tìm hiểu kiểu dữ liệu number phần 1
Bài 15: Tìm hiểu kiểu dữ liệu number phần 2
Bài 16: Tìm hiểu kiểu dữ liệu khác
Chương 3: Toán tử so sánh, coercion, câu điều kiện
Bài 17: Tìm hiểu hàm Number
Bài 18: Tìm hiểu hàm String
Bài 19: Tìm hiểu hàm Boolean
Bài 20: Type coercion là gì ?
Bài 21: Toán tử so sánh cơ bản
Bài 22: Toán tử logic cơ bản
Bài 23: So sánh == vs ===
Bài 24: Câu điều kiện cơ bản
Bài 25: alert, prompt và confirm
Bài 26: Bài tập về câu điều kiện
Bài 27: Tìm hiểu switch case
Bài 28: Ternary operator
Chương 4: Hàm toàn tập
Bài 29: Function cơ bản cho người mới
Bài 30: Funtion cơ bản cho người mới phần 2
Bài 31: Funtion cơ bản cho người mới phần 3
Bài 32: Global scope và function scope
Bài 33: Block scope và từ khoá var
Bài 34: Closure cơ bản
Bài 35: Closure cơ bản tiếp theo
Bài 36: Bài tập về function số 1
Bài 37: Bài tập về function số 2
Bài 38: Bài tập về function số 3
Bài 39: Arrow function cơ bản
Chương 5: Các hàm về thời gian
Bài 40: Giới thiệu về Date object
Bài 41: Timestamp và epochtime
Bài 42: 4 cách khởi tạo Date object nên biết
Bài 43: Các hàm get trong Date
Bài 44: Các hàm set trong Date
Bài 45: Tìm hiểu utc trong Date
Bài 46: Tìm hiểu các hàm khác trong Date
Bài 47: Bài tập đơn giản về Date object
Bài 48: Tìm hiểu setTimeout và setInterval
Bài 49: Bài tập chương 5
Bài 50: Giải bài tập chương 5 bài 1
Bài 51: Giải bài tập chương 5 bài 2
Bài 52: Giải bài tập chương 5 bài 3
Bài 53: Giải bài tập chương 5 bài 3 phần 2
Bài 54: Giải bài tập chương 5 bài 3 phần 3
Chương 6: Mảng và vòng lặp cơ bản toàn tập
Bài 55: Giới thiệu về mảng
Bài 55.5: Giới thiệu về mảng bổ sung
Bài 56: Các phương thức trong mảng phần 1
Bài 57: Các phương thức trong mảng phần 2
Bài 57.5: Các phương thức trong mảng phần 2 bổ sung
Bài 58: Tìm hiểu phương thức slice
Bài 59: Tìm hiểu phương thức splice
Bài 60: Tìm hiểu phương thức sort
Bài 61: Tìm hiểu phương thức find
Bài 62: Tìm hiểu phương thức findIndex
Bài 63: Tìm hiểu phương thức sort bổ sung
Bài 64: Tìm hiểu phương thức map
Bài 65: Tìm hiểu phương thức forEach
Bài 66: Tìm hiểu phương thức filter
Bài 67: Tìm hiểu phương thức some và every
Bài 68: Tìm hiểu phương thức reduce
Bài 69: Bài tập về mảng số 1
Bài 70: Bài tập về mảng số 2
Bài 71: Bài tập về mảng số 3
Bài 72: By value và by references
Bài 73: Cách so sánh 2 mảng cơ bản
Bài 74: 2 cách để sao chép mảng cần biết
Bài 75: 2 cách để gộp mảng cần nắm
Bài 76: Destructuring là gì ?
Bài 77: Tìm hiểu rest parameter
Bài 78: Vòng lặp for cơ bản phần 1
Bài 79: Vòng lặp for cơ bản phần 2
Bài 80: Vòng lặp for cơ bản phần 3
Bài 81: Vòng lặp for cơ bản phần 4
Bài 82: Bài tập cơ bản về vòng lặp for
Bài 83: Vòng lặp while và do while
Bài 84: Vòng lặp for of
Bài 85: Bài tập chương 6 số 1 và 2
Bài 86: Bài tập chương 6 số 3
Bài 87: Bài tập chương 6 số 4
Bài 88: Bài tập chương 6 số 5
Bài 89: Bài tập chương 6 số 6
Bài 90: Bài tập chương 6 số 7
Chương 7: Object cơ bản cho người mới
Bài 91: Tìm hiểu object cơ bản phần 1
Bài 92: Tìm hiểu object cơ bản phần 2
Bài 93: Tìm hiểu for in trong object
Bài 94: Tìm hiểu phương thức Object.keys
Bài 95: Tìm hiểu phương thức Object.values
Bài 96: Tìm hiểu phương thức Object.entries
Bài 97: Tìm hiểu phương thức Object.assign
Bài 98: Tìm hiểu phương thức Object.freez
Bài 99: Tìm hiểu phương thức Object.seal
Bài 100: Cách sao chép một object
Bài 101: Cách sao chép một object phức tạp
Bài 102: Từ khoá this trong object
Bài 103: Optional chaining
Bài 104: Destructuring object
Bài 105: Bài tập chương 7 số 1
Bài 106: Bài tập chương 7 số 2
Bài 107: Bài tập chương 7 số 3
Bài 108: Bài tập chương 7 số 4
Chương 8: DOM toàn tập
Bài 109: DOM là gì ?
Bài 110: document.querySelector
Bài 111: document.querySelectorAll
Bài 112: document.getElementsByClassName
Bài 113: document.getElementsByTagName
Bài 114: document.getElementById
Bài 115: getAttribute
Bài 116: setAttribute
Bài 117: removeAttribute
Bài 118: hasAttribute
Bài 119: Thuộc tính textContent
Bài 120: Thuộc tính innerText
Bài 121: Thuộc tính innerHTML
Bài 122: Các phương thức về class phần 1
Bài 123: Các phương thức về class phần 2
Bài 124: Ví dụ toggle menu đơn giản với toggle class
Bài 125: document.createElement và document.appendChild
Bài 126: Thực hành phương thức document.appendChild
Bài 127: document.createTextNode
Bài 128: Phương thức cloneNode
Bài 129: Phương thức hasChildNodes
Bài 130: Phương thức insertAdjacentText
Bài 131: Phương thức insertAdjacentElement
Bài 132: Phương thức insertAdjacentHTML
Bài 133: Traversing DOM phần 1
Bài 134: Traversing DOM phần 2
Bài 135: Traversing DOM phần 3
Bài 136: Bài tập Active Modal phần 1
Bài 137: Bài tập Active Modal phần 2
Bài 138: Bài tập Notification phần 1
Bài 139: Bài tập Notification phần 2
Bài 140: Các thuộc tính liên quan tới offset
Bài 141: Các thuộc tính liên quan tới client
Bài 142: Các thuộc tính liên quan tới window
Bài 143: Tìm hiểu getBoundingClientRect()
Bài 144: Sự khác nhau giữa NodeList và HTMLCollection
Bài 145: Sự khác nhau giữa parentNode và parentElement
Bài 146: Tìm hiểu document.title và document.head
Bài 147: Tìm hiểu thêm phương thức insertBefore
Bài 148: Tìm hiểu thêm phương thức replaceChild
Chương 9: Tất tần tật về sự kiện trong Javascript
Bài 149: Giới thiệu
Bài 150: Sự kiện click
Bài 151: Bubbling trong click
Bài 152: Capturing trong click
Bài 153: Sự khác nhau giữa target và currentTarget
Bài 154: preventDefault() để làm gì ?
Bài 155: Bài tập Random background color
Bài 156: Bài tập Counter
Bài 157: Tìm hiểu object style
Bài 158: Truy xuất giá trị của custom attribute như nào?
Bài 159: Bài tập Toggle menu phần 1
Bài 160: Bài tập Toggle menu phần 2
Bài 161: Bài tập Tab phần 1
Bài 162: Bài tập Tab phần 2
Bài 163: Bài tập Tab phần 3
Bài 164: Bài tập Accordion phần 1
Bài 165: Bài tập Accordion phần 2
Bài 166: Bài tập Accordion phần 3
Bài 167: Bài tập Modal phần 1
Bài 168: Bài tập Modal phần 2
Bài 169: Bài tập Lightbox phần 1
Bài 170: Bài tập Lightbox phần 2
Bài 171: Bài tập Lightbox phần 3
Bài 172: Bài tập Lightbox phần 4
Bài 173: Bài tập Lightbox phần 5
Bài 174: Bài tập Dropdown phần 1
Bài 175: Bài tập Dropdown phần 2
Bài 176: Sự khác nhau giữa load và DOMContentLoaded
Bài 177: Sự kiện di chuyển chuột cần nắm
Bài 178: Sự khác nhau giữa clientXY và pageXY
Bài 179: Bài tập Tooltip phần 1
Bài 180: Bài tập Tooltip phần 2
Bài 181: Bài tập Tooltip phần 3
Bài 182: Bài tập Tooltip phần 4
Bài 183: Bài tập Link hover effect phần 1
Bài 184: Bài tập Link hover effect phần 2
Bài 185: Bài tập Image Zoom hover effect phần 1
Bài 186: Bài tập Image Zoom hover effect phần 2
Bài 187: Bài tập Image Zoom hover effect phần 3
Bài 188: Bài tập Image Zoom hover effect phần 4
Bài 189: Bài tập Image Zoom hover effect phần 5
Bài 190: Sự kiện keydown
Bài 191: Sự kiện keyup
Bài 192: Sự kiện keypress
Bài 193: Sự kiện change
Bài 194: Sự kiện focus và blur
Bài 195: Sự kiện submit trong form
Bài 196: Truy xuất các giá trị trong cơ bản
Bài 197: Truy xuất giá trị của checkboxes như thế nào?
Bài 198: Ví dụ về Form Validation cơ bản
Bài 199: Bài tập Show hide password đơn giản
Bài 200: Bài tập Highlight search text phần 1
Bài 201: Bài tập Highlight search text phần 2
Bài 202: Bài tập Highlight search text phần 3
Bài 203: Bài tập Highlight search text phần 4
Bài 204: Bài tập Highlight search text phần 5
Bài 205: Giới thiệu sự kiện scroll
Bài 206: Debounce là gì?
Bài 207: window.pageXOffset và window.pageYOffset
Bài 208: Các phương thức, thuộc tính về scroll khác
Bài 209: offsetWidth và scrollWidth
Bài 210: scrollIntoView()
Bài 211: Bài tập Fixed Header phần 1
Bài 212: Bài tập Fixed Header phần 2
Bài 213: Bài tập Progress Bar phần 1
Bài 214: Bài tập Progress Bar phần 2
Bài 215: Bài tập Tab Scroll phần 1
Bài 216: Bài tập Tab Scroll phần 2
Bài 217: Bài tập Tab Scroll nâng cao phần 1
Bài 218: Bài tập Tab Scroll nâng cao phần 2
Bài 219: Bài tập Tab Scroll nâng cao phần 3
Bài 220: Bài tập Tab Scroll nâng cao phần 4
Bài 221: Bài tập Tab Scroll nâng cao phần 5
Bài 222: localStorage toàn tập
Bài 223: Bài tập todoList phần 1
Bài 224: Bài tập todoList phần 2
Bài 225: Bài tập todoList phần 3
Bài 226: Bài tập todoList phần 4
Bài 227: Bài tập todoList phần 5
Bài 228: Bài tập Sweet Alert phần 1
Bài 229: Bài tập Sweet Alert phần 2
Chương 10: Regular expression cơ bản
Bài 230: Giới thiệu Regular expression
Bài 231: Anchor
Bài 232: Ranges
Bài 233: Meta characters
Bài 234: Quantifiers
Bài 235: Quantifiers tiếp theo
Bài 236: Group
Bài 237: Boundaries và escaping characters
Bài 238: Sử dụng phương thức replace với Regex
Bài 239: Bài tập email validation phần 1
Bài 240: Bài tập email validation phần 2
Bài 241: Bài tập email validation phần 3
Bài 242: Bài tập password validation phần 1
Bài 243: Bài tập password validation phần 2
Bài 244: Bài tập password validation phần 3
Bài 245: Bài tập password validation phần 4
Chương11: Kiến thức bổ sung và tạm kết phần 1
Bài 246: Tìm hiểu defer trong script
Bài 247: Tìm hiểu async trong script
Bài 248: Tìm hiểu removeEventListener
Bài 249: Sự khác nhau giữa onclick và addEventListener
Bài 250: Bài tập Animate on scroll phần 1
Bài 251: Bài tập Animate on scroll phần 2
Bài 252: Bài tập Countdown timer phần 1
Bài 253: Bài tập Countdown timer phần 2
Bài 254: Bài tập Countdown timer phần 3
Bài 255: Bài tập Countdown timer phần 4
Bài 256: Bài tập Simple slider phần 1
Bài 257: Bài tập Simple slider phần 2
Bài 258: Bài tập Simple slider phần 3
Bài 259: Bài tập Simple slider phần 4
Bài 260: Bài tập Simple slider phần 5
Bài 261: Bài tập Simple slider phần 6
Bài 262: Bài tập MP3 player phần 1
Bài 263: Bài tập MP3 player phần 2
Bài 264: Bài tập MP3 player phần 3
Bài 265: Bài tập MP3 player phần 4
Bài 266: Bài tập MP3 player phần 5
Bài 267: Bài tập MP3 player phần 6
Bài 268: Bài tập MP3 player phần 7
Bài 269: Bài tập MP3 player phần 8
Bài 270: Bài tập Memory game phần 1
Bài 271: Bài tập Memory game phần 2
Bài 272: Bài tập Memory game phần 3
Bài 273: Bài tập Memory game phần 4
Bài 274: Bài tập Memory game phần 5
Bài 275: Bài tập Memory game phần 6
Bài 276: Bài tập Memory game phần 7
Bài 277: Tạm kết phần 1 và bật mí phần 2
Chương 12: Các kiến thức khác cần biết
Bài 278: Các kiến thức hay khác cần biết
Bài 279: arguments trong function
Bài 280: Câu hỏi phỏng vấn về closure
Bài 281: Sự khác nhau giữa localStorage và sessionStorage
Bài 282: Cách sử dụng arrow function hiệu quả
Bài 283: Đệ quy là gì ?
Bài 284: Bài tập đệ quy phần 1
Bài 285: Bài tập đệ quy phần 2
Bài 286: Tìm hiểu object Set
Bài 287: Tìm hiểu cách debug trong VSCode
Bài 288: Location trong BOM
Bài 289: Location trong BOM tiếp theo
Bài 290: History trong BOM
Bài 291: Navigator trong BOM
Chương 13: Prototype & constructor function
Bài 292: constructor function là gì ?
Bài 293: Prototype là cái gì ?
Bài 294: Tìm hiểu Bind phần 1
Bài 295: Tìm hiểu Bind phần 2
Bài 296: Sự khác nhau giữa call và apply
Bài 297: Refactor bài tập Simple Slider với Prototype
Chương 14: Class
Bài 298: Giới thiệu class
Bài 299: setter và getter
Bài 300: class expression
Bài 301: static method là gì ?
Bài 302: static property là gì ?
Bài 303: Tìm hiểu super và extends
Bài 304: Bài tập TodoList phần 1
Bài 305: Bài tập TodoList phần 2
Bài 306: Bài tập TodoList phần 3
Bài 307: Bài tập TodoList phần 4
Bài 308: Bài tập TodoList phần 5
Bài 309: Bài tập TodoList phần 6
Bài 310: Bài tập TodoList phần 7
Bài 311: Bài tập TodoList phần 8
Bài 312: Bài tập TodoList phần 9
Chương 15: Kiến thức về bất đồng bộ
Bài 313: Global execution context
Bài 314: Function execution context
Bài 315: Callstack
Bài 316: Tìm hiểu event loop phần 1
Bài 317: Tìm hiểu event loop phần 2
Bài 318: Callback hell là gì?
Bài 319: Promise phần 1
Bài 320: Promise phần 2
Bài 321: Promise phần 3
Bài 322: Promise phần 4
Bài 323: Promise phần 5
Bài 324: Promise phần 6
Bài 325: try catch
Bài 326: Async await phần 1
Bài 327: Async await phần 2
Bài 328: Async await phần 3
Chương 16: API toàn tập
Bài 329: API là gì ?
Bài 330: Ví dụ đơn giản với API phần 1
Bài 331: Ví dụ đơn giản với API phần 2
Bài 332: Bài tập API DadJoke phần 1
Bài 333: Bài tập API DadJoke phần 2
Bài 334: Bài tập API Picsum Photos phần 1
Bài 335: Bài tập API Picsum Photos phần 2
Bài 336: Bài tập API Picsum Photos phần 3
Bài 337: Cors là gì ?
Bài 338: Các trạng thái hay gặp khi gọi API
Bài 339: Các phương thức hay dùng nên biết
Bài 340: Giới thiệu Json Server phần 1
Bài 341: Giới thiệu Json Server phần 2
Bài 342: Thực hành bài tập khóa học với Json Server phần 1
Bài 343: Thực hành bài tập khóa học với Json Server phần 2
Bài 344: Thực hành bài tập khóa học với Json Server phần 3
Bài 345: Thực hành bài tập khóa học với Json Server phần 4
Bài 346: Thực hành bài tập khóa học với Json Server phần 5
Bài 347: Thực hành bài tập khóa học với Json Server phần 6
Bài 348: Thực hành bài tập khóa học với Json Server phần 7
Bài 349: Thực hành bài tập khóa học với Json Server phần 8
Bài 350: Thực hành bài tập khóa học với Json Server phần 9
Bài 351: Thực hành bài tập khóa học với Json Server phần 10
Bài 352: Thực hành bài tập khóa học với Json Server phần 11