Những ai là dân phát triển phần mềm hoặc làm về web, chắc hẳn không còn xa là gì với JS( JavaScript ) nữa. Một ngôn ngữ nổi đã từng đứng top 1 trong top những ngôn ngữ lập trình thịnh hành nhất năm 2019 và đứng thứ 3 trong năm 2021. Tính linh hoạt, đa nhiệm của JavaScript với việc có thể chạy từ Client đến Server , từ Web đến phát triển AI đã khiến bất cứ web developer nào cũng dùng nó, cũng chính JS khiến cho bao anh em Dev phải khóc lên khóc xuống vơi sự khó hiểu không khác gì người yêu (Dev có người yêu à ??). JS không có lỗi (maybe) lỗi tại các anh em chọn JS để dùng , cho nên bài viết này sẽ mang lại tổng quát về JS để cho anh em dev nào chưa sử dụng còn né :)), còn anh em nào sử dụng rồi thì người khóc cùng nhau ( Nói chơi vậy thui chứ em nó cũng dễ hiểu mà ^^).

1. Nguồn gốc sức mạnh của JS

JavaScript, theo phiên bản hiện hành, là một ngôn ngữ lập trình thông dịch được phát triển từ các ý niệm nguyên mẫu. Ngôn ngữ này được dùng rộng rãi cho các trang web (phía người dùng) cũng như phía máy chủ (với Nodejs) .
Được phát triển bởi  Brendan Eich vào năm 1995  tại Hãng truyền thông Netscape với cái tên đầu tiên Mocha, rồi sau đó đổi tên thành LiveScript, và cuối cùng thành JavaScript. Giống Java, JavaScript có cú pháp tương tự C, nhưng nó gần với Self hơn Java.  .js là phần mở rộng thường được dùng cho tập tin mã nguồn JavaScript. Vào thời gian này, các nhà sản xuất Netscape browser nhận ra rằng, việc thêm một "glue language" để nâng cao trải nghiệm người dùng sẽ làm tăng sự tiêu thụ nội dung của người dùng. Tuy nhiên, tại thời điểm đó, Java hiện là một ngôn ngữ mới, nóng hổi của website, nên họ đã quyết định làm cho ngôn ngữ này gần gũi với cú pháp của Java. Kết quả đem lại chính là JavaScript, với các tính năng của Scheme, định hướng đối tượng của SmallTalk và cú pháp của Java. Phiên bản đầu tiên của ngôn ngữ này được đặt tên là Mocha vào tháng 5 năm 1995, đổi tên thành LiveScript vào tháng 9 năm 1995, và được đổi tên thành JavaScript vào tháng 12 năm 1995.
Năm 1996, JavaScript đã được gửi đến ECMA International để hoàn thiện trở thành, một đặc tính kỹ thuật tiêu chuẩn. Vào tháng 6 năm 1997, đặc tính kỹ thuật chính thức đầu tiên cho ngôn ngữ được phát hành là ECMA-262. Phiên bản mới nhất của ngôn ngữ là ECMAScript 2018 được phát hành vào tháng 6 năm 2018.

2. JS hoạt động thế nào và tính ứng dụng của JS

2.1 Ứng dụng JS

Trong có 3 thứ hình thành lên một trang web mà bất cứ web dev nào cũng biết đó à :
- HTML: hay hypertext markup language (ngôn ngữ đánh dấu siêu văn bản), được sử dụng để đưa nội dung lên một trang. Nó cho phép bao gồm những thứ như văn bản, hình ảnh, liên kết và thậm chí cả video. Ví dụ: HTML sẽ cho phép bạn đặt nút đăng nhập ở một vị trí nhất định trên trang web của bạn.
- CSS : được sử dụng để định kiểu nội dung đã được chèn bằng HTML. Theo ví dụ trên, CSS sẽ cho phép bạn thay đổi hình dạng, kích thước, màu sắc và kiểu của nút đăng nhập mà bạn đã thêm bằng HTML.
- JavaScript: JavaScript cho phép bạn lấy các yếu tố web thông thường và làm cho chúng mang tính tương tác. Nó có thể được sử dụng cùng với HTML và CSS và là một công cụ cực kỳ quan trọng đối với bất kỳ nhà phát triển web nào. Để hoàn thành ví dụ trên, code JavaScript sẽ được sử dụng để làm cho nút đăng nhập của bạn thực hiện các hành động bắt buộc (đăng nhập người dùng khi nhấp vào).
Vắng JS, các trang web sẽ thành web tĩnh , có nghĩa các trang hiện giờ chỉ chứa HTML và CSS , nó sẽ chỉ display text hoặc hình ảnh nhưng người dùng không thể tương tác bất cứ thứ gì trên web. Đối chiếu ví dụ trên , nếu không có code của JavaScript ta sẽ thể đăng nhập vào tài khoản. JS hiện nay không chỉ dùng để viết chức năng nữa, với lượng lớn thư viện và framework ,JS đã chạm tới mọi khía cạnh trên web. Giao diện thì bạn có React, Angular, Server có NodeJS ExpressJS, đã khiến cho JS trở thành ngôn ngữ đa dụng và không thể thiếu nhất dành cho phát triển web.
Không chỉ phát triển web , JS cũng dùng để phát triển mobile app. Mặc dù hầu hết công việc phát triển ứng dụng di động được thực hiện bởi các ngôn ngữ dành riêng cho hệ điều hành như Swift (iOS) hoặc Java (Android), không có lý do gì bạn không thể xây dựng ứng dụng bằng JavaScript. Việc triển khai các framework như Phonegap và React Native giúp tạo ra các ứng dụng di động cho nhiều hệ điều hành bằng cùng một code. JavaScript trở nên tuyệt vời trong việc phát triển ứng dụng di động trong tương lai.
Tính đa dụng của JS của web và app mà bạn có thể phá triển được cả game bằng JS. Game là một trong những dự án thú vị nhất mà bạn có thể tạo, vì cả bạn và người dùng cuối đều có thể tận hưởng chúng. Có nhiều cách khác nhau để sáng tạo game mới với ngôn ngữ JavaScript, tùy thuộc vào độ phức tạp của trò chơi. Ta có thể xây dựng các trò chơi 2D đơn giản từ đầu bằng HTML, CSS và JavaScript vani. Để xây dựng các game có thiết kế phức tạp, cũng như các trò chơi mang tính hiệu quả hơn và nhanh hơn, bạn có thể sử dụng công cụ trò chơi JavaScript để làm cho quá trình này dễ dàng hơn. Một số engines này là Phaser Js, Blyon Js và Lime Js có thể giúp bạn làm việc dễ dàng hơn.
Trong tương lai JS còn được dùng để phát triển AI, tôi đã từng viết qua một ứng dụng đọc báo tự động bằng JS, phải nói viết AI bằng JS khó hơn một chút so với Python nhưng nó cũng là một minh chứng cho việc JS cũng có thể được dùng cho phát triển AI nữa, tuy sẽ không được ưa chuộng bằng Python nhưng tôi tin trong tương tai nó sẽ còn được phát triển hơn nữa để phù hợp với AI.

2.2 JS hoạt động thế nào

Do JS hoạt động được trên đa nên tảng nên tôi sẽ chon web để nói cách thức hoạt động của nó thay vì nên tảng khác, vì JS được sử dụng rộng rãi trên web hơn là app hay game, cũng một phần kinh nghiệm do bản thân cũng quen việc viết JS trên web rồi.
Khi web browser tải một web page, HTML parser bắt đầu phân tích cú pháp HTML code và tạo DOM. Bất cứ khi nào trình phân tích cú pháp gặp một chỉ thị CSS hoặc JavaScript (inline hoặc externally loaded), nó sẽ được chuyển giao cho CSS parser hoặc JavaScript engine theo yêu cầu. JavaScript engine tải các tệp JavaScript bên ngoài và inline code, nhưng không chạy mã ngay lập tức, mà đợi HTML và CSS phân tích hoàn tất. Khi điều này được thực hiện, JavaScript được thực thi theo thứ tự chúng được tìm thấy trên trang web: các biến và hàm được xác định, các lời gọi hàm được thực thi, trình xử lý sự kiện được kích hoạt,... Các hoạt động này dẫn đến việc DOM được cập nhật bởi JavaScript và được hiển thị ngay lập tức bởi trình duyệt.
Đây chỉ mới phần tông quan hoạt động của JS , nêu bạn hứng thú hơn và muốn biết sâu hơn về các thức hoạt đông bạn có thể đọc thêm tại đây:

3. JavaScript là interpreter hay compiler ?

Một trông những điều khiến rất nhiều người mới học rất confused: JS là thông dịch hay biên dịch vậy ??
Câu trả lời là cả hai. Để giải thích cho điều này rõ hơn thì mình xin phép sẽ để dành cho một bài khác vì nếu viết sẽ dài quá mất @@.

4. Kết Luận

Mong rằng một chút tổng quan này sẽ giúp những anh em đã và đang học JS sẽ bớt sợ, bớt ghét JS hơn. Càng tìm hiểu thêm về JS , bạn sẽ thấy JS cũng không khó để hiểu mà càng thích nó hơn, cũng giống như người yêu vậy, khó hiểu lúc đầu nhưng càng về sau bạn sẽ ngày càng hiểu và yêu cô ấy hơn (btw dev có người yêu hả ???).
__________________________
source: