Javascript là gì mà nhiều người dùng đến vậy? - Fedu

CHÀO MỪNG BẠN ĐẾN VỚI THƯ VIỆN HỌC TẬP & ĐÀO TẠO CƠ BẢN

Javascript là gì mà nhiều người dùng đến vậy?

JavaScript

Hướng dẫn JavaScript

Biểu mẫu JavaScript

Đối tượng JavaScript

Hàm JavaScript

DOM JavaScript

Trình duyệt BOM

JavaScript Ajax

JavaScript Json

Mới đây website RedMonk thống kê các ngôn ngữ lập trình phổ biến nhất năm 2017. Bảng xếp hạng là sản phẩm kế thừa công trình đầu tiên của Drew Conway và John Myles White, cùng thông tin tổng hợp đến từ nhiều trang web lớn như GitHub và Stack Overflow, từ đó phản ánh ý kiến cả theo hướng code (GitHub) lẫn thảo luận (Stack Overflow). Bảng Xếp Hạng không phải là con số thống kê mức độ sử dụng chính xác hoàn toàn, mà nhằm thể hiện quan hệ tương quan giữa thảo luận ngôn ngữ (Stack Overflow) và mức độ sử dụng ngôn ngữ (GitHub) trong nỗ lực mở ra insight cho các xu hướng ngôn ngữ tiềm năng trong tương lai.

Xếp ở vị trí đầu tiên của bảng danh sách này là Javascript, tiếp sau đó là các ngôn ngữ được đánh giá tiếp theo gồm Java, Python hay PHP,…

Bênh cạnh biểu đồ trên (hơi khó nhìn, kể cả ở fullsize), RedMonk còn cung cấp bảng xếp hạng số bên dưới. Như bạn có thể thấy, kết quả dưới đây có một số ngôn ngữ hòa nhau (và sẽ được sắp xếp trên hay dưới dựa hoàn toàn theo alphabet. Vì có kết quả hòa, nên dưới đây sẽ là top 23 thay vì top 20.

1 JavaScript

2 Java

3 Python

4 PHP

5 C#

5 C++

7 CSS

7 Ruby

9 C

10 Objective-C

11 Scala

11 Shell

11 Swift

14 R

15 Go

15 Perl

17 TypeScript

18 PowerShell

19 Haskell

20 Clojure

20 CoffeeScript

20 Lua

20 Matlab

Kể cả những số liệu thống kê từ trước năm 2017 đến giờ thì Javascript vẫn là ngôn ngữ được giới lập tình viên sử dụng nhiều nhất. Vậy javascript có gì mà nó lại đứng top như vậy. Cùng Fedu blog điểm qua một số thông tin giúp bạn hiểu rõ bản chất, khía cạnh các điểm yếu, điểm mạnh của Javascript nhé.

Khởi nguồn từ giữa những năm 1990, qua 20 năm tồn tại và phát triển, Javascript đã có những thay đổi lớn để thích nghi với thời cuộc, và bây giờ trở thành một ngôn ngữ toàn năng, thiết yếu và phù hợp đối với bất cứ một nhà phát triển nào. Javascript là ngôn ngữ lập trình full stack duy nhất cho đến thời điểm hiện nay, Javascript làm được nhiều thứ hơn bạn tưởng từ web client đến server, từ desktop đến mobile ….và vì có lẽ cũng không ai rãnh rỗi để tạo ra ngôn ngữ lập trình đã thống trị thế giới web (phần máy khách), do vậy hiển nhiên Javascript là vua của ngôn ngữ lập trình full stack, vì không có đối thủ 🙂. Với ý tưởng ban đầu là tạo ra một ngôn ngữ thông dịch tích hợp vào trình duyệt nhằm tăng tính tương tác của người dùng với trang web, với sự mềm dẻo của mình thì ngày nay Javascript đã làm được nhiều điều hơn thế.

1. Chàng ngự lâm trong lập trình phía máy Client

Ở vị trí client-side thì Javascript chiếm vị trí độc tôn. Hiện nay, không một ngôn ngữ nào có thể cạnh tranh với Javascript trong vai trò là một ngôn ngữ tương tác cho các trang web. Điều gì đã làm cho Javascript được chấp nhận rộng rãi và trở nên phổ biến như vậy? Khó có thể có một câu trả lời thỏa đáng, nhưng chúng ta có thể kể ra những đặc điểm của Javascipt để thấy được các ưu điểm của nó.

Về cú pháp, cũng giống như nhiều ngôn ngữ khác, Javascript thừa kế nhiều cú pháp từ ngôn ngữ C nhưng đã được thêm bớt nhiều để trở nên linh hoạt hơn. Các cấu trúc lập trình cơ bản thì hầu như không có sự thay đổi nào, ví dụ if, while, switch…; Một thay đổi lớn mà ít người để ý đến đó là cơ chế tự chèn dấu chấm phẩy (;), việc này giúp cho chúng ta có một cú pháp ít chặt chẽ hơn nhưng “dễ thở” hơn trong khi viết code.

Kiểu dữ liệu là một trong những khái niệm quan trọng trong các ngôn ngữ lập trình. Thường thì có hai cách để thể hiện kiểu dữ liệu, đó là gắn vào biến hay gắn vào giá trị. Với các ngôn ngữ biên dịch (như C, Java,…) thì kiểu dữ liệu được gắn vào biến, có nghĩa là khi chúng ta khai báo một biến thì nhất thiết phải chỉ rõ biến đó thuộc kiểu dữ liệu nào, và nó chỉ có thể được gắn với các giá trị của kiểu đó. (Tại sao lại thế? Việc này mang lại những lợi ích gì? Chúng ta có thể tranh luận thêm). Trong Javascript (và phần lớn các ngôn ngữ kịch bản – scripting language – khác) thì kiểu dữ liệu được gắn với giá trị, có nghĩa là chúng ta có thể khai báo một biến, gán cho nó một giá trị kiểu chuỗi, rồi sau đó lại thay đổi để nó gắn nó với một giá trị số. Điều này thật dễ dàng (Tại sao?).

Javascript là một ngôn ngữ lập trình hướng đối tượng (OOP) mềm dẻo, đây là một thế mạnh nữa của Javascript. Tôi phải thêm chữ “mềm dẻo” đằng sau bởi vì cách mà nó hỗ trợ OOP thật là tuyệt vời. Bản thân mỗi đối tượng trong Javascript là một mảng, cộng thêm việc dựa trên cơ chế prototype làm cho quá trình tạo và sử dụng trong Javascript thật là “nhẹ như lông hồng”. Có hai cú pháp để sử dụng thuộc tính của một đối tượng: obj.name = ‘Bob’ và obj[‘name’] = ‘Bob’. Ngoài ra, ta có thể thêm, bớt, thay đổi các thuộc tính của đối tượng một cách tùy thích tại thời điểm thực thi (điều này thì các ngôn ngữ khác đã kể ở trên khó mà có được). Các thuộc tính cũng có thể được duyệt qua bằng cách sử dụng vòng lặp for…in. (Nhân tiện nói đến vòng lặp, mời các bạn xem thêm bài về mảng trong Javascript để thấy được nó linh hoạt như thế nào)

Hàm eval() trong Javascript giúp chúng ta làm được một việc to lớn bằng một cách rất dễ dàng. Tại thời điểm thực thi, nếu chúng ta muốn thực thi một đoạn mã mà trước đó chưa hề có, vậy phải làm sao? Thật đơn giản, chỉ cần cung cấp đoạn mã đó dưới dạng một chuỗi, chỉ là chuỗi, hàm eval() sẽ giúp ta chuyển chuỗi đó thành mã thực thi ngay tức khắc. Linh hoạt đến thế là cùng.

Còn nhiều, nhiều đặc điểm khác nữa của Javascript, nhưng chúng ta sẽ không kể hết ra đây. Tôi chỉ muốn nhắc đến một thứ cuối cùng, thứ đã tạo nên một thế giới Javascript thật đa dạng và phong phú. Đó chính là danh sách hàng triệu triệu nền tảng và thư viện Javascript được xây dựng và cung cấp hoàn toàn miễn phí (và cả có phí) cho chúng ta sẵn dùng. Các nền tảng này, kèm thêm các phần mở rộng của chúng, đã tạo nên một hệ sinh thái mà ở đó tất cả chúng ta đều hưởng lợi.

  1. Ngôn ngữ server-side.

Mặc dù trước đây chúng ta đã có thể sử dụng Javascript làm ngôn ngữ lập trình cho server-side, nhưng nhìn chung thì nó vẫn không được biết đến nhiều lắm cho tới khi Nodejs ra đời. Mặc dù chỉ mới xuất hiện gần đây (năm 2009) nhưng thực sự Nodejs đã làm nên một cuộc cách mạng, làm cho Javascript trở nên mạnh mẽ, đa năng, hiệu quả hơn bao giờ hết. Với cơ chế bất đồng bộ vốn có của mình, Nodejs là lựa chọn số một cho các ứng dụng network thời gian thực với quy mô lớn. Có thể kể tên những “khách hàng” nổi tiếng của Nodejs: Facebook, Microsoft, Yahoo, Paypal,… và một loạt các đại gia cùng tiểu gia khác.

  1. Ứng dụng desktop.

Với việc Microsoft chính thức hỗ trợ việc phát triển các ứng dụng Metro từ Windows 8 thì Javascript đã có thêm một mảnh đất lớn để dụng võ. Với cách làm này, các nhà phát triển sẽ nhanh chóng tạo ra được các ứng dụng desktop “đẹp lung linh” mà không phải mất quá nhiều công sức. Tất nhiên, về phía người dùng, họ không thể nhận ra một sự khác biệt nào giữa một ứng dụng loại này so với một ứng dụng viết bằng C#, VB.NET hay một ngôn ngữ khác. . Nếu bạn thấy thú vị, tôi xin giới thiệu với bạn một nền tảng là TideSDK, nó sẽ giúp cho bạn phát triển các ứng dụng desktop nhanh, đẹp cho hầu hết tất cả các hệ điều hành phổ biến hiện nay.

  1. Ứng dụng mobile

Sử dụng Javascript để viết ứng dụng cho các thiết bị di động không còn là một điều gì đó quá mới mẻ, các bạn có thể đọc thêm một bài viết ở đây. Tạo ra các ứng dụng dạng này cũng không quá khó khăn, tại sao ư? Bởi vì hiện nay có từ vài chục (cho đến vài trăm) nền tảng giúp cho chúng ta làm được việc này dễ dàng, thử liệt kê ra một số: jQuery Mobile, PhoneGap, Sencha Touch,… Hãy xem bảng so sánh ở đây và đọc thêm bài này để có được một cái nhìn toàn cảnh hơn về các nền tảng này.

  1. Game

Unity, Construct 2, ImpactJS… là những cái tên không còn quá xa lại đối với những nhà phát triển game (Có thể tham khảo danh sách khá đầy đủ ở đây). Sử dụng các nền tảng này sẽ giúp chúng ta nhanh chóng tạo được những game đa nền tảng với đồ họa “đẹp như mơ”. Đa nền tảng ở đây không chỉ là nói đến các nền tảng PC truyền thống, mà còn là các nền tảng di động nữa. Đặc biệt, đối với hệ điều hành di động FirefoxOS mới ra đời thì việc sử dụng Javascript (và các nền tảng hỗ trợ) là một điều bắt buộc khi bạn muốn phát triển ứng dụng hay game. Hãy bắt đầu bằng việc xem một video dài chưa đến 2 phút trình diễn việc viết game sử dụng một nền tảng nó dễ dàng như thế nào nhé.

  1. All-by-One

Còn gì tuyệt vời hơn khi chỉ cần một ngôn ngữ mà bạn lại có thể tạo ra được chừng ấy thứ? Nếu là lập trình viên, bạn sẽ không mất nhiều thời gian để làm quen với nhiều ngôn ngữ. Nếu là ông chủ, bạn sẽ không phải bỏ tiền để thuê nhiều đội phát triển cho những nền tảng khác nhau. Nếu là người dùng, tôi sẽ không quan tâm tới ngôn ngữ đằng sau, miễn sao ứng dụng phù hợp với tôi, đem lại cho tôi một trải nghiệm nhất quán không phụ thuộc nền tảng. Với một thế giới toàn màu hồng như vậy, còn chần chừ gì nữa mà không kết thân ngay với chàng Hiệp sĩ Javacript toàn năng ngay từ bây giờ. Đăng ký ngay khóa học JavaScript từ Cơ bản – nâng cao của Fedu.vn với giá khuyến mại chỉ còn 349,000đ tại đây. Giúp bạn thành thạo lập trình Javascript duy nhất trong một khóa học.

Lưu ý đây là khóa học Javascript đầu tiên tại Việt Nam dạy một cách bài bản nhất từ đầu – có các bài tập thực hành giúp học viên hiểu rõ và nắm rõ bản chất của vấn đề – các bài học có tham khảo các hiệu ứng trong các trang web nổi tiếng như facebook, google. Học viên học xong có thể làm được luôn

Bài viết có tham khảo từ tác giả nhatnk – tạp chí lập trình