10+ tài liệu JavaScript từ cơ bản đến nâng cao

Viết bởi @kcjpop

Đăng ngày

Dài 1992 từ. Đọc trong 10 phút.

Chưa bao giờ JavaScript lại phát triển mạnh mẽ như thời gian gần đây. Hầu như mỗi năm JS lại được cập nhật lên phiên bản mới, kèm theo những tính năng hay ho hấp dẫn giúp cuộc đời lập trình viên chúng ta “dễ thở” (hoặc ngược lại ^^’). Thêm vào đó, sự phát triển của Babel hay cuộc chạy đua vũ trang của các trình duyệt giúp cho những tính năng mới trong JS dễ dàng sử dụng hơn, nhưng cũng đòi hỏi lập trình viên phải cập nhật liên tục để tận dụng triệt để khả năng của ngôn ngữ.

Hệ quả là, những tài liệu JavaScript có sẵn bỗng nhanh chóng trở nên lỗi thời. Nhưng không sao, bôi cao sẽ khỏi. Đã có Ehkoo ở đây cào nát Internet và những-trang-mà-ai-cũng-biết-là-trang-gì-đó, để chọn ra 10+ tài liệu JavaScript đáng đồng tiền bát gạo nhất dành cho bạn, từ cơ bản đến nâng cao, và hoàn toàn MIỄN PHÍ.

Tài Liệu JavaScript Cơ Bản

JavaScript Guide của MDN

“Hướng dẫn JavaScript” của Mạng lập trình viên Mozilla (Mozilla Developer Network - MDN) là tài liệu đầu tiên bạn cần tham khảo - cực kì đầy đủ và luôn được cập nhật mỗi khi JS phát hành phiên bản mới. Tài liệu được chia ra làm ba phần:

  • Sơ cấp: giới thiệu những khái niệm căn bản của JavaScript, cách khai báo biến, giá trị, các cấu trúc điều khiển và vòng lặp if/else/for/while/switch, cách khai báo hàm và biểu thức, các lớp căn bản như Date hay RegExp v.v…
  • Trung cấp: giới thiệu về lập trình hướng đối tượng trong JavaScript, làm việc với các APIs của trình duyệt, khái niệm closure, v.v…
  • Cao cấp: phần này tập trung vào những khái niệm nâng cao như các liên kết prototype, cách thao tác trực tiếp lên dữ liệu dạng nhị phân, quản lý bộ nhớ và cách thức EventLoop hoạt động, v.v…

Bên cạnh đó, tài liệu này cũng nhắc đến những vấn đề không liên quan đến kỹ thuật, chẳng hạn như sự liên hệ giữa JavaScript và Java (bật mí: không có liên quan gì hết ^^’), hay JavaScript và ECMAScript có dây mơ rễ má ra sao.

Nếu bạn còn “mới tinh” về JavaScript, lời khuyên của Ehkoo là: chỉ cần đọc hết 8 chương đầu tiên, cùng với phần “Working with objects”, bạn đã có thể nắm căn bản về ngôn ngữ rồi. Tiếp đến, hãy bắt tay vào làm một ứng dụng nhỏ để củng cố kiến thức. Sau này, khi đã quen với JavaScript, bạn hãy quay lại và xem những chủ đề trung hoặc cao cấp hơn.

Tài liệu được cung cấp miễn phí tại https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide

Eloquent JavaScript, 3rd Edition

Tác giả: Marijn Haverbeke

Số trang: 456

Năm xuất bản: 2018

Nhà xuất bản: No Starch Press

Eloquent JavaScript là một quyển sách đặc biệt, vì nó không chỉ giới thiệu về JS. Đối tượng độc giả mà sách hướng đến là những bạn đang chập chững làm quen với lập trình, do đó tác giả Haverbeke chú trọng giải thích những nguyên tắc của việc lập trình, mối quan hệ giữa ngôn ngữ lập trình và máy tính, v.v… Sách được chia làm ba phần:

  • Phần 1: giới thiệu về ngôn ngữ JavaScript — biến, kiểu dữ liệu, cấu trúc chương trình, hàm, object và array, regex, v.v…
  • Phần 2: hướng dẫn lập trình trên trình duyệt — DOM, xử lý sự kiện, v.v…
  • Phần 3: NodeJS căn bản

Bằng cách tiếp cận “học đi đôi với hành”, người đọc sẽ được hướng dẫn thực hiện vài ứng dụng nho nhỏ, từ xây dựng một robot giao hàng, cài đặt một ngôn ngữ lập trình đơn giản, đến thực hiện một website. Nhờ áp dụng ngay những kiến thức học được vào thực tế, độc giả có thể ghi nhớ nhanh chóng hơn.

Bạn có thể đọc quyển sách này miễn phí tại https://eloquentjavascript.net/

Có thể bạn chưa biết: Marijn Haverbeke là tác giả của thư viện CodeMirror — một chương trình soạn thảo nền web được sử dụng rất rộng rãi.

You Don’t Know JS

Tác giả: Kyle Simpson

Năm xuất bản: 2015

Nhà xuất bản: O’Reilly

You Don’t Know JS là loạt sách gồm 6 quyển chuyên về JavaScript.

  • Phần 1: Up & Going — cung cấp những kiến thức cơ bản về lập trình nói chung và JavaScript nói riêng
  • Phần 2: Scope & Closures — giới thiệu về khái niệm tầm vực, phân biệt giữa tầm vực trong khối và hàm, v.v…
  • Phần 3: this & Object Prototypes — đề cập đến lập trình hướng đối tượng trong JavaScript, giới thiệu về lớp và prototype
  • Phần 4: Types & Grammar — kiểu dữ liệu trong JavaScript
  • Phần 5: Async & Performance — thực thi các thao tác bất đồng bộ và hiệu năng của ứng dụng JavaScript
  • Phần 6: ES6 & Beyond — phiên bản ES6 của JS và những khái niệm liên quan

Bạn có thể đọc sách miễn phí tại https://github.com/getify/You-Dont-Know-JS

Tài Liệu JavaScript Nâng Cao

Exploring ES6

Tác giả: Axel Rauschmayer

Số trang: 641

Năm xuất bản: 2015 - 2018

Khi nói đến ES6, có lẽ không quyển sách nào qua được Exploring ES6 của Dr. Axel Rauschmayer - tác giả blog 2ality. Sách dày hơn 600 trang, mô tả chi tiết từng tính năng của ES6, từ let với const là gì, hàm mũi tên, modules, v.v… đến những chuyện bên lề như tại sao có khi lại gọi ES5 là ES2015. Sách dành cho những bạn đã có kiến thức về JavaScript.

Bạn có thể đọc miễn phí ở đây http://exploringjs.com/es6. Ngoài ra, tác giả còn hai quyển sách “chị em” cùng chủ đề: Exploring ES2016 and ES2017Exploring ES2018 and ES2019.

Understanding ECMAScript 6

Tác giả: Nicholas Zakas

Số trang: 322

Nhà xuất bản: LeanPub

Một quyển sách khác về ES6. So với Exploring ES6 thì cuốn này mỏng hơn nhưng cũng bao hàm đầy đủ những tính năng quan trọng của ES6. Bạn có thể đọc sách miễn phí tại https://leanpub.com/understandinges6.

Có thể bạn chưa biết: Nicholas Zakas là tác giả của ESLint — công cụ phân tích và kiểm tra mã nguồn JavaScript được sử dụng rộng rãi trong hầu hết các dự án hiện nay. Anh cũng là tác giả của khá nhiều quyển sách hay ho khác về JS mà Ehkoo sẽ giới thiệu tiếp theo đây.

The Principles of Object-Oriented JavaScript

Tác giả: Nicholas Zakas

Số trang: 120

Năm xuất bản: 2014

Nhà xuất bản: No Starch Press

Lập trình hướng đối tượng (object-oriented programming — OOP) trong JavaScript có thể hơi khác lạ nếu bạn đến từ những ngôn ngữ thuần OOP như Java hay C#. Nhưng cách thực hiện hướng đối tượng dựa vào bản mẫu (prototype-based) của JS lại làm cho ngôn ngữ này trở nên thú vị, vì cách tiếp cận này vẫn bảo toàn 4 nguyên tắc căn bản của OOP: tính khái quát (Abstraction), tính bao đóng (Encapsulation), tính kế thừa (Inheritance), và tính đa hình (Polymorphism).

Sách mỏng, dễ đọc, giúp bạn hiểu rõ hơn về cách thức objects được tổ chức và lưu trữ trong JavaScript. Dù cho sách vẫn dùng những khái niệm cũ của ES5, khi JavaScript chưa chính thức hỗ trợ class, bạn vẫn có thể dễ dàng liên hệ những gì đọc được với ES6 class.

Rediscovering JavaScript - Master ES6, ES7, and ES8

Tác giả: Venkat Subramaniam

Số trang: 257

Năm xuất bản: 2018

Nhà xuất bản: The Pragmatic Programmers

Rediscovering JavaScript là quyển sách dành cho những bạn đã tìm hiểu về ES6/7/8. Sách giới thiệu những kinh nghiệm thực tế khi làm việc với JS phiên bản mới, chẳng hạn như cách phân rã biến và sử dụng giá trị mặc định khi khai báo hàm, để đảm bảo chữ ký hàm vẫn rõ ràng và dễ sử dụng; hay lời khuyên không nên lạm dụng hàm mũi tên; hoặc những ví dụ về siêu lập trình (metaprogramming) trong JS. Mỗi chương đều có đi kèm bài tập, giúp bạn kiểm tra lại kiến thức của mình.

Chuyên Đề: Lập Trình Hàm

Professor Frisby’s Mostly Adequate Guide to Functional Programming

Tác giả: Brian Lonsdorf

Lập trình hàm ngày càng được nhiều người quan tâm bởi những lợi ích mà nó mang lại. Nhưng trong quá trình tìm hiểu, có thể bạn sẽ bắt gặp những khái niệm “lạ hoắc lạ huơ” như Functor, IO hay (don’t you dare) Monad. Đừng tìm đâu xa, Mostly Adequate là quyển sách bạn muốn đọc ngay. Bằng giọng văn hài hước, cách hành văn dễ hiểu, “Giáo sư Frisby” Brian Lonsdorf sẽ dẫn bạn qua những ví dụ đơn giản nhất, kết hợp với nhau cho đến khi bạn vỗ đùi “hóa ra Monad là rứa”.

Sách có 12 chương, và bạn có thể đọc miễn phí ở https://mostly-adequate.gitbooks.io/mostly-adequate-guide/.

JavaScript Allongé, the “Six” Edition

Tác giả: Reg “raganwald” Braithwaite

Nhà xuất bản: LeanPub

JavaScript Allongé là quyển sách về lập trình với hàm, “vô tình” lại được thể hiện bằng JavaScript. Phiên bản mới của sách sử dụng ES6, ngoài dùng class (de, lập trình hàm mà dùng class) còn đề cập đến mixin, generators, v.v… Bạn nhất định phải đọc quyển sách này cùng với quyển Mostly Adequate ở trên, nếu bạn hứng thú với lập trình hàm!

Sách có thể đọc miễn phí tại https://leanpub.com/javascriptallongesix/read.

Functional-Light JavaScript: Balanced, Pragmatic FP in JavaScript

Tác giả: Kyle Simpson

Nhà xuất bản: LeanPub

So với hai quyển sách ở trên, Functional-Light JavaScript nhẹ nhàng hơn và không sử dụng những thuật ngữ chuyên sâu trong lập trình hàm. Thay vào đó, sách chỉ ra cách áp dụng những khái niệm của FP vào thực tế. Lời đề tựa của sách được viết bởi Giáo sư Frisby.

Đọc miễn phí tại https://github.com/getify/functional-light-js

Chuyên Đề: Refactoring

Refactoring JavaScript - Turning Bad Code into Good Code

Tác giả: Evan Burchard

Số trang: 499

Năm xuất bản: 2017

Nhà xuất bản: O’Reilly Media

Mặc dù mỗi dự án sẽ có những tính chất đặc thù, dẫn đến những chiến lược refactoring khác nhau, nhưng quyển sách này có thể cung cấp cho bạn một cái nhìn khái quát khi bắt tay vào sửa chữa code JavaScript. Sách bắt đầu bằng cách đặt câu hỏi mục tiêu refactoring là gì, mục tiêu bạn hướng đến khi refactor, sau đó gợi ý những chiến lược riêng để xử lý chuỗi, hàm, mã chết, hay những tác vụ bất đồng bộ.

Ehkoo khuyên đọc nếu bạn đang có ý định “đập đi xây lại” với dự án hiện tại. Thường thì phá dễ hơn sửa, và đôi khi chưa hẳn là giải pháp tốt. Bạn có thể download quyển sách này MIỄN PHÍ tại http://refactoringjs.com/.

Simplifying JavaScript - Writing Modern JavaScript with ES5, ES6, and Beyond

Tác giả: Joe Morgan

Số trang: 255

Năm xuất bản: 2018

Nhà xuất bản: The Pragmatic Programmers

Nhìn tựa có vẻ như nói về JS thế hệ mới, nhưng nội dung chính của quyển sách này là những mẹo/ lời khuyên để bạn có thể viết JavaScript rõ ràng hơn. Do đó, nếu bạn là người “hốt rác” chuyên nghiệp, đừng bỏ qua quyển sách này.

Chuyên Đề: (Có Thể) Cũ Mà Hay

Even Faster Web Sites: Performance Best Practices for Web Developers

Tác giả: Steve Souders

Số trang: 256

Năm xuất bản: 2009

Nhà xuất bản: O’Reilly Media

High Performance JavaScript

Tác giả: Nicholas Zakas

Số trang: 232

Năm xuất bản: 2010

Nhà xuất bản: O’Reilly Media, Yahoo! Press

Maintainable JavaScript

Tác giả: Nicholas Zakas

Số trang: 242

Năm xuất bản: 2012

Nhà xuất bản: O’Reilly Media

Điểm chung của 3 quyển sách trên là gì? Đầu tiên là cũ. Thứ hai là Ehkoo chưa đọc :p, nhưng được một blogger nhiều tên ít tuổi trong cộng đồng giới thiệu. Nếu bạn đọc thấy không hay thì tìm @huytd ở WeBuildVN mà mắng vốn nhé.

Kết

Với tốc độ thay đổi nhanh còn hơn cả triều cường Sài Gòn sau mưa của JS, thì Ehkoo không chắc danh sách tài liệu JavaScript nêu ở trên sẽ còn “hợp thời” đến chừng nào. Tuy nhiên, Ehkoo sẽ cố gắng cập nhật thường xuyên.

Và, vẫn một lời đã cũ, nếu bạn biết tài liệu/sách JavaScript hay ho thú vị nào khác, đừng quên chia sẻ cho Ehkoo và đồng bọn thông qua phần bình luận phía dưới nhé!

Bản tin Ehkoo hàng tuần 💌

Đăng ký ngay để nhận những tin và bài viết mới nhất về lập trình frontend, cũng như các thủ thuật hay thư viện mới…

Powered by Buttondown

Gửi tặng cà phê ☕️

Nếu thấy bài viết này hữu ích, bạn có thể gửi tặng Ehkoo một ly cà phê theo link bên dưới 👇

Cám ơn bạn rất nhiều 🤗