Tổng quan về JavaScript. Học JavaScript như thế nào cho hiệu quả ?



  • js-cover-840.jpeg
    Dạo gần đây, JavaScript là một cái tên được nhắc đến rất nhiều trên các cộng đồng lập trình, nhà nhà người người thi nhau đi học JavaScript. JavaScript cũng đứng thứ 2 (sau Python) trong top 10 ngôn ngữ phổ biến nhất năm 2020 (Theo: Northeastern University). Vậy JavaScript là gì? Bài viết này sẽ nói tổng quan về JavaScript để giúp bạn hiểu rõ hơn bản chất của ngôn ngữ này nhé 😉

    1. JavaScript là gì ?

    JavaScript (viết tắt là JS – đọc là da-va-sờ-cờ-ríp 😂) là một ngôn ngữ lập trình thông dịch (Interpreted Programming Language) hay ngôn ngữ kịch bản (Scripting Language).

    Ngôn ngữ thông dịch (Interpreted Languages) là ngôn ngữ biên dịch và thực thi cùng lúc trên từng dòng code, tốc độ thực thi chậm: Javascript, PHP, Python, Ruby, …
    Ngôn ngữ biên dịch (Compiled Languages) là ngôn ngữ biên dịch trước, thực thi sau trên toàn bộ mã nguồn. Tốc độ thực thi rất nhanh: C, C++, C#, Go, Rust, …
    JS được sinh ra với mục đích chính là nhúng vào file HTML để biến một website tính trở nên sinh động hơn.

    2. Lịch sử phát triển của JavaScript ?

    Brendan-Eich.jpeg
    Brendan Eich - cha đẻ của JavaScript

    JS được ra đời và tháng 5 năm 1995, cha đẻ là Brendan Eich một nhà công nghệ Mỹ, đồng sáng lập Mozilla và là một lập trình viên của Netscape.

    Các phiên bản của JavaScript cho đến nay:

    5/1995: Mocha
    9/1995: LiveScript
    12/1995: JavaScript
    6/1997: ECMAScript 1 (ES1). ECMAScript là một phiên bản chuẩn hoá của JS.
    6/1998: ES2
    12/1999: ES3
    12/2009: ES5
    6/2011: ES5.1
    6/2015: ES6 – ES2015 (Phiên bản ổn định của JS)
    Các năm tiếp theo JS ra tiếp các phiên bản ES7, ES8, … Và hiện tại là ES12 với các tính năng rất nổi bật.

    3. Cách thức hoạt động và điểm khác biệt của JavaScript

    JS là một ngôn ngữ đơn luồng (Single Thread) hay nói cách khác JS chỉ có duy nhất một call stack, một heap và trong cùng một thời điểm chỉ chạy duy nhất một dòng lệnh.

    JS có thể chạy được trên trình duyệt là nhờ vào các JavaScript Engine. Các engine này sẽ chuyển đổi code JS thành mã máy mà máy tính có thể hiểu được.

    Có rất nhiều các JS Engine phổ biến như SpiderMonkey (Firefox), Chakra, Rhino, Carakan, JavaScriptCore, Tamarin, … và nổi tiếng nhất là Google V8 được sử dụng trong Google Chrome và NodeJS runtime.
    js-engine-1.jpeg
    JavaScript Engine - Tổng quan về JavaScript

    4. Học JavaScript để làm gì và hệ sinh thái của nó ?

    Một trong những ưu điểm lớn của JS mà khiến nhiều người học nó đó chính là tính đa dụng của nó. Nếu không quá quan tâm về mặt hiệu năng thì JS có thể đảm nhiệm mọi vai trò trong thế giới của phát triển phần mềm.

    he-sinh-thai-js.png
    Hệ sinh thái của JavaScript

    Phát triển ứng dụng Frontend Web

    Đây cũng chính là mục tiêu ban đầu mà JS lúc vừa mới ra đời. Nếu như HTML là khung sườn của trang web, CSS là công cụ trang điểm thì JS chính là trái tim, linh hồn của trang web đó.

    JS giúp cho website của chúng ta trở nên sinh động hơn, người dùng có thể thao tác với các thành phần trên web một cách trực quan hơn, …

    Các thư viện, framework ưu chuộng: ReactJS, VueJS, Angular, Jquery, Ember, Backbone.js, Three.js, …

    Phát triển ứng dụng Backend Web

    nodejs.png
    Phát triển ứng dụng Backend với NodeJS

    Hiện nay, JS cũng rất có ưu thế trong việc phát triển Backend Server hay viết APIs nhờ phát triển của NodeJS Runtime JavaScript.

    Từ đó,chỉ với JS chúng ta hoàn toàn có thể xây dựng một ứng dụng vừa và nhỏ một cách nhanh chóng mà không cần học thêm ngôn ngữ khác.

    Các thư viện, framework ưu chuộng: Expressjs, Koa, Fastify, NestJs, …

    Phát triển Game 2D, 3D

    Thông qua HTML5 Canvas APIs thì chúng ta hoàn toàn có thể tạo nên một game hoàn hảo trên trình duyệt một cách nhanh chóng và dễ dàng hơn bao giờ hết. Chúng ta cũng có thể sử dụng canvas để tạo ra các hiệu ứng siêu đẹp trên website của mình.

    Bên cạnh đó, cũng có rất nhiều các engine hỗ trợ chúng ta tạo nên những game 2D, 3D với hiệu năng cao trên web dễ dàng hơn như BabylonJS, LimeJS, …

    Phát triển ứng dụng Mobile

    react-native.png
    Phát triển ứng dụng Mobile với React Native

    Dạo gần đây, xu hướng phát triển các ứng dụng đa nền tảng trên điện thoại (Hybrid App – Cross Platform) trở nên phổ biến vì chỉ cần viết một lần mà dùng ở nhiều nơi, việc này giúp giảm chi phí và thời gian phát triển ứng dụng.

    Một vài công nghệ hỗ trợ việc này như Flutter (được viết bằng Dart) và React Native được viết bằng JavaScript. Ngoài ra còn có NativeScript, Ionic, …

    Phát triển ứng dụng Desktop

    electron.png
    Xây dựng desktop app với Electron

    Giờ đây, chúng ta có thể xây dựng một ứng dụng trên desktop đa nền tảng dễ dàng với Electron, một thư viện mã nguồn mở của Github. Các ứng dụng quen thuộc của chúng ta được viết bở Electron như Visual Studio Code, Slack, Figma, Microsoft team, …

    Yeah, vậy là đủ các nền tảng phổ thông cho anh em dev phát triển phần mềm rồi nhé. Thoải mái nghịch ngợm, tạo nên các ứng dụng đa nền tảng chỉ với JS. Nhưng mà khoan 😐 Nếu JS ngon vậy thì cần gì học ngôn ngữ khác nữa? Xem tiếp bên dưới nhé.

    5. Ưu và nhược điểm của JavaScript

    Ưu điểm
    Thật sự mà nói, JS có rất nhiều ưu điểm khiến mọi người yêu thích nó:

    JS rất dễ học, dễ bắt đầu cho người mới. Nếu so với các ngôn ngữ biên dịch như C, C++, C# thì JS dễ hơn rất nhiều.
    Bạn có thể chạy JS ở bất kỳ đâu vì nó không cần một trình biên dịch. Bạn có thể dùng ngay trên console web browser hay Runtime NodeJS.
    JS làm được rất nhiều thứ như mình nói ở trên, bạn dễ dàng xây dựng một ứng dụng đa nền tảng mà không cần mất quá nhiều thời gian. Ví dụ như bạn học ReactJS thì rất dễ để qua React Native.
    JS rất dễ bắt lỗi, debug trong lúc code, vì nó thông dịch theo từng dòng nên đến dòng nào debug dòng đó.
    Cộng đồng ae JS hùng hậu, stackoverflow đầy đủ không ngại con bug nào 🐞·
    Hơn 92% các trang web hiện nay có sử dụng JS (2016), vì thế học JS không lo không có chỗ dùng, trừ khi website không dùng JS nữa 🤣
    Số lượng tuyển dụng lập trình viên biết Javascript cao, dễ có cơ hội việc làm hơn.
    Tuyển dụng JavaScript
    Tuyển dụng JavaScript
    Nhược điểm
    Cái gì cũng có nhược điểm của nó, JS cũng thế. Và đôi khi chính những ưu điểm của JS cũng trở thành nhược điểm của nó.

    Dễ học nhưng kiến thức không hàn lâm nên rất khó để nắm được chuyên sâu về hệ thống. Không như C, C++, JS là kiểu dữ liệu động, không thuần OOP, không có khái niệm con trỏ, … Vì thế, rất khó để chuyển sang ngôn ngữ khác nếu học JS đầu tiên.
    Dễ dàng chạy trên trình duyệt vì thế rất dễ bị tấn công phía client bởi các script mà hacker nhúng vào.
    Chạy đa nền tảng tuy nhiên hiệu năng không thể cao như các ngôn ngữ native khác.
    Cộng đồng đông mã nguồn mở nhiều nên hệ thống có thể dễ bị khai thác lỗ hổng.

    6. Học JavaScript ở đâu ?

    JS rất dễ học và có rất nhiều nguồn để học JS. Bạn có thể tham khảo vài nguồn ở dưới đây nhé:

    Website: W3School, Mozilla, Freecodecamp, F8 fullstack, Nodemy.vn (tiếng Việt, thầy giảng). Class.nodemy.vn (học video)
    Đọc Blog: Blog của mình, Blog toidicodedao, viblo, ..
    Học qua các kệnh Youtube
    Sách: You don’t know JavaScript, Eloquent JavaScript, Head First JavaScript Programming, …

    7. Học JavaScript như thế nào cho hiệu quả ?

    Thật ra, bạn học như thế nào cũng được, bản thân bạn thấy thoải mái, tiến bộ mỗi ngày là được. Nhưng mình có một vài lời khuyên cho những bạn mới bắt đầu học như sau:

    Hãy tìm hiểu sơ lược hoặc kỹ càng về bản chất của JS. Cách thức mà nó hoạt động và học nó để làm gì, đừng học chỉ vì nó đang làm trend.
    Luôn đặt ra các câu hỏi trong lúc học một cái mới như cái này là cái gì? Học nó để làm gì? Có cách nào khác để làm điều đó không?…
    Hãy học kỹ căn bản đừng vội lao vào học framework. Ban đầu có thể bạn sẽ cảm thấy chậm, nhưng tin mình đi sau này bạn sẽ không phí thời gian đâu.
    Đừng ôm học quá nhiều framework hay thư viện, hãy học chuyên sâu một cái đã. Tổng quan thì chúng cũng như nhau cả thôi.
    Đừng quá lạm dụng vào các thư viện có sẵn, cái nào dễ thì hãy tìm cách làm.
    Và đặc biệt là đọc nhiều blog và xem video từ nhiều nơi, từ đó bạn có thể tích góp được nhiều cái hay ở nhiều nơi.

    8. Vậy có nên học JavaScript ?

    Câu trả lời là “Tuỳ vào bạn”, nếu bạn vẫn đang cảm thấy phân vân thì hãy đọc lại blog này hoặc tìm đọc cái blog liên quan khác. Sau đó, hãy trả lời câu hỏi này. Còn nếu bạn vẫn thực sự chưa trả lời được thì cứ học thôi, đừng quan tâm ai nói gì? Tự học thì bạn sẽ tự ngộ ra câu trả lời thôi nè 😎

    Tạm kết
    Cảm ơn bạn đã đọc bài viết này, hy vọng nó sẽ giúp bạn phần nào hiểu hơn về ngôn ngữ vạn người mê ngàn người lú JavaScript này nhé. Nếu thấy hay và bổ ích hãy chia sẻ bài viết này nhé. Mọi thắc mắc gì, bạn cứ bình luận bên dưới ❤

    Bạn có thể theo dõi Series Về Javascript của mình để cập nhật các kiến thức hay ho về JS nhé.
    Nguồn:
    https://dynonguyen.com/tong-quan-ve-javascript/


Log in to reply
 

});