• Android
  • Nodejs
  • JavaScript
  • Tin tức
  • Server
No Result
View All Result
AeDev.Net
  • Android
  • Nodejs
  • JavaScript
  • Tin tức
  • Server
No Result
View All Result
AeDev.Net
No Result
View All Result

Tông quan về javascript, typescript và ES6

admin by admin
23/08/2022
in JavaScript, React Native
0
Tông quan về javascript, typescript và ES6
Share on FacebookShare on Twitter

Nội dung chính của bài viết

  • Javascript là gì?
    • JavaScript Framework là gì?
    • Cách thức hoạt động của JavaScript trên trang web
    • Ưu điểm và nhược điểm khi sử dụng JavaScript
      • Ưu điểm của JavaScript
      • Nhược điểm của JavaScript
  • Typescript là gì?
    • Lợi ích của việc sử dụng TypeScript
      • Ưu điểm của Typescript:
  • Kiểu động và kiểu tĩnh
    • Khai báo biến theo Typescript:
    • Các Text Editor hỗ trợ TypeScript
    • Cài đặt TypeScript
  • ES6
    • Cú pháp ES6 mới
    • Destructuring
    • Arrow Functions
    • Symbol
    • Iterators & Generators
    • Promises
    • ES6 collections
    • Array extensions
    • Object extensions
    • String extensions
    • Proxy & Reflection
  • Lời kết

Javascript là gì?

JavaScript là ngôn ngữ lập trình phổ biến dùng để tạo ra các trang web tương tác. Được tích hợp và nhúng vào HTML giúp website trở nên sống động hơn. JavaScript đóng vai trò như một phần của trang web, thực thi cho phép Client-Side Script từ phía người dùng cũng như phía máy chủ (Nodejs) tạo ra các trang web động.

JavaScript Framework là gì?

JavaScript Framework là thư viện được xây dựng dựa vào ngôn ngữ lập trình JavaScript. Từ đó, mỗi framework được tạo ra để phục cho từng lĩnh vực khác nhau. Bạn có thể tìm hiểu kỹ hơn về framework là gì, sẽ giúp bạn có thêm nhiều thông tin rõ ràng hơn. Hiện nay, có rất nhiều JavaScript Framework thông dụng như:

  • Reactjs: Thư viện dùng cho ứng dụng mobile.
  • Node.js: Dùng để xây dựng và phát triển ứng dụng realtime từ phía máy chủ.
  • Angular: Dùng để xây dựng ứng dụng Single Page….

Cách thức hoạt động của JavaScript trên trang web

JavaScript thường sẽ được nhúng trực tiếp vào một trang web hoặc được tham chiếu qua file .js riêng. JavaScript là ngôn ngữ từ phía client nên script sẽ được tải về máy client khi truy cập và được xử lý tại đó. Thay vì tải về máy server và sau khi xử lý xong mới phản hồi kết quả đến client. Với hiện nay, thì các trình duyệt Internet cũng có thể hỗ trợ bạn tắt/mở JavaScript. Lúc đó bạn có thể thấy được nếu một trang web không có JavaScript thì sẽ như thế nào? Từ đó bạn có thể hình dung dễ dàng hơn về cách JavaScript hoạt động.

Ưu điểm và nhược điểm khi sử dụng JavaScript

Ưu điểm của JavaScript

JavaScript có các ưu điểm được xem là vượt trội so với các đối thủ khác trong các trường hợp thực tế như:

  • Chương trình JavaScript rất dễ học.
  • Lỗi JavaScript dễ phát hiện và sẽ giúp bạn sửa lỗi nhanh hơn.
  • Các trình duyệt web có thể dịch nó bằng HTML mà không cần một compiler.
  • JS hoạt động trên rất nhiều nền tảng và trình duyệt khác nhau.
  • Được đánh giá là ngôn ngữ lập trình nhẹ, nhanh so với các ngôn ngữ khác.
  • JS có thể được gắn trên một số element hoặc các events của trang web.
  • Khi website có sử dụng JS thì sẽ giúp cho trang web đó tương tác và tăng trải nghiệm người dùng khi truy cập.
  • Bạn có thể tận dụng JavaScript để kiểm tra các input thay vì kiểm tra thủ công thông qua việc truy xuất database.
  • Giao diện phong phú gồm các thành phần Drag and Drop, Slider để cung cấp một Rich Interface (Giao diện giàu tính năng).

Nhược điểm của JavaScript

Mặt khác, ngoài những ưu điểm nhưng mọi ngôn ngữ lập trình khác đều có những nhược điểm riêng của nó như:

  • Dễ bị khai thác từ những hacker và scammer.
  • Có thể được dụng để thực thi mã độc trên máy tính của người dùng.
  • JS code snippet lớn.
  • Các thiết bị khác nhau có thể thực hiện JS khác nhau dẫn đến không đồng nhất.
  • Vì tính bảo mật nên client-side JavaScript không cho phép đọc và ghi các file.
  • JS không được hỗ trợ khi sử dụng trong kết nối mạng.
  • JavaScript không có khả năng đa luồng hoặc đa xử lý.

Typescript là gì?

TypeScript là một phiên bản cao hơn của JavaScript, được thiết kế để xây dựng các ứng dụng lớn và phức tạp.  Nó kế thừa nhiều khái niệm từ Java và C#, TypeScript là ngôn ngữ tĩnh (Static typed) có nghĩa là nó nghiêm ngặt và có trật tự trái ngược với free-type. Nó còn được bổ sung thêm lớp hướng đối tượng mà điều này không có ở Javascript.

Lợi ích của việc sử dụng TypeScript

Ngay lập tức bạn sẽ thắc mắc rằng TypeScript là gì mà mạnh dữ vậy sao? Bạn đã phải trầy trật học React/Redux. Bỏ công sức chỉ để hiểu sơ về Vue.js cũng như may mắn không bị bế tắc với Angular.

Việc phải học thêm một thứ ngôn ngữ mới mà ta chả biết gì về tương lai của nó thật sự là một sự phiền toái đến khủng khiếp. Thế nên bạn vào xem cái list tính năng của nó và nhận ra là có cả một cộng đồng các developer khá là to đứng đằng sau.

Điều đó khiến bạn tự hỏi rằng liệu nó thật sự có ích đến vậy à? Và bạn cũng hẳn biết một developer khôn ngoan luôn là người đi tắt đón đầu. Đừng lo bởi tôi cũng như bạn, tin rằng TypeScript cũng khá có tiềm năng và đáng để chúng ta thử qua.

Ưu điểm của Typescript:

  • Dễ dàng hơn trong phát triển các dự án lớn, được hỗ trợ bởi các Javascript Framework lớn.
  • Hầu hết các cú pháp hướng đối tượng đều được hỗ trợ bởi Typescript như kế thừa, đóng gói, constructor, abstract, interface, implement, override…v.v
  • Cách tổ chức code rõ ràng hơn, hỗ trợ cơ chế giúp kiến trúc hệ thống code hướng module, hỗ trợ namespace, giúp xây dựng các hệ thống lớn nơi mà nhiều lập trình viên có thể làm việc cùng nhau một cách dễ dàng hơn.
  • Hỗ trợ các tính năng mới nhất của Javascript. TypeScript luôn đảm bảo việc sử dụng đầy đủ các kỹ thuật mới nhất của Javascript, ví dụ như version hiện tại là ECMAScript 2015 (ES6).
  • Một lợi thế của Typescript nữa là mã nguồn mở vì vậy nó miễn phí và có cộng đồng hỗ trợ rất lớn.
  • Với static typing, code viết bằng TypeScript dễ dự đoán hơn, và dễ debug hơn.

Typescript đang được sử dụng ở các Framework phổ biến như Angular, Nodejs, Ionic…

Kiểu động và kiểu tĩnh

Trong JavaScript, ta làm việc với kiểu động (dynamic type). Còn với TypeScript, ta làm việc với kiểu tĩnh (static type). Hai trường phái có điểm mạnh hay yếu đều tùy thuộc vào mục đích của người dùng.

Tuy nhiên với kiểu tĩnh nó có những điểm mạnh riêng như giúp giảm thiểu thời gian xử lí và cải thiện quá trình coding một cách hiệu quả hơn so với kiểu động.

Khi nhắc đến Type, thì tức luôn nói về biến. Khái niệm kiểu động và kiểu tĩnh nghe có vẻ phức tạp nhưng thực chất nó rất đơn giản. Biến có kiểu động là biến có thể chứa bất kì kiểu giá trị nào mà không bị giới hạn bởi một kiểu nhất định. 

Ví dụ:

var a = 1;
a = "AeDev";

Ta thấy biến a chứa giá trị số 1, nhưng sau đó nó được gán giá trị chuỗi AeDev. Nếu chạy code này trong Typescript  thì ngay lập tức bị lỗi Cannot convert 'string' to 'number'. Vì Typescript theo kiểu tĩnh nên biến khi đã được xác định kiểu thì chỉ có thể chứa các giá trị có kiểu đó.

Khai báo biến theo Typescript:

var name: string = "AeDev";

Nếu khai báo thế này, ta đã xác định rõ ràng kiểu của name là string và sau này, ta không thể gán một giá trị số.

Với những người quen dùng ngôn ngữ lập trình kiểu động và khi sang sử dụng kiểu tĩnh thì  họ cảm thấy bị gò bó và hạn chế.

Tuy nhiên, sự khắt khe của kiểu tĩnh có cái lợi của nó. Khi một biến được khai báo kiểu rõ ràng, ta luôn biết được kiểu của giá trị mà nó chứa mà không cần phải kiểm tra.

Khi mà một biến có thể chứa nhiều kiểu giá trị khác nhau, tuy mang lại sự linh hoạt nhưng nó cũng khiến cho việc bảo trì trở nên phức tạp hơn, đặc biệt là khi debug để tìm lỗi có liên quan tới kiểu.

Một điểm khác biệt nữa trong TypeScript đó là lỗi về kiểu sẽ được phát hiện trong quá trình viết code hoặc khi biên dịch (compile-time) sang JavaScript nhờ sự trợ giúp của Visual Studio Code. Còn trong JavaScript, ta phải đợi tới khi chạy (run-time) thì mới biết, và cũng có khi chẳng bao giờ biết.

Các Text Editor hỗ trợ TypeScript

Hiện nay, rất nhiều text editor và IDE hỗ trợ sẵn hoặc thông qua các plugin để hỗ trợ cú pháp của TypeScript, auto-complete suggestions, bắt lỗi và thậm chí tích hợp sẵn trình biên dịch.

  • Visual Studio Code – Một trình soạn thảo mã nguồn mở của Microsoft. Hỗ trợ sẵn TypeScipt.
  • Plugin cho Sublime Text
  • Phiên bản mới nhất của WebStorm cũng hỗ trợ TypeScript
  • Và nhiều trình soạn thảo khác như Vim, Atom, Emacs …

Tips: Khi dùng Visual Studio Code, ta có thể tách khung soạn thảo code ra làm hai phần. Một phần dùng để viết code TypeScript, phần còn lại sẽ tự động hiển thị code JavaScript được biên dịch. Với tính năng này, ta vừa viết code TypeScript vừa có thể xem code JavaScript được sinh ra khi nhấn Save. 

Cài đặt TypeScript

Cài TypeScript thông qua npm. Sử dụng lệnh dưới đây có thể cài đặt TypeScript package toàn cục, giúp cho trình biên dịch TypeScript có thể sử dụng trong mọi dự án của chúng ta:

npm install -g typescript

Kiểm tra cài đặt bằng lệnh:

tsc -v

ES6

ECMAScript 2015 hoặc ES2015 là một bản cập nhật quan trọng cho ngôn ngữ lập trình JavaScript. Đây là bản cập nhật lớn đầu tiên cho ngôn ngữ kể từ ES5 được chuẩn hóa vào năm 2009. Do đó, ES2015 thường được gọi là ES6

Cú pháp ES6 mới

  • let – khai báo các biến phạm vi khối bằng cách sử dụng từ khóa: let.
  • let vs. var – hiểu sự khác biệt giữa let và var.
  • const – xác định hằng số bằng cách sử dụng từ khóa const.
  • Default function parameters – ltìm hiểu cách đặt giá trị mặc định cho các tham số của một hàm.
  • Rest parameter – giới thiệu cho bạn tham số rest và cách sử dụng chúng một cách hiệu quả.
  • Spread operator – học cách sử dụng spread operator một cách hiệu quả.
  • Object literal syntax extensions – cung cấp một cách mới để xác định nghĩa đen của đối tượng.
  • for…of – tìm hiểu cách sử dụng vòng lặp để lặp lại các phần tử của một đối tượng có thể lặp lại for...of .
  • Octal and binary literals –  cung cấp hỗ trợ cho các nghĩa đen nhị phân và thay đổi cách biểu diễn các nghĩa đen bát phân.
  • Template literals – học cách thay thế các biến trong một chuỗi.

Destructuring

  • Array Destructuring – chỉ cho bạn cách gán các phần tử của một mảng cho các biến.
  • Object Destructuring – tìm hiểu cách gán các thuộc tính của một đối tượng cho các biến.
  • Class – giới thiệu cho các bạn về cú pháp class ES6 và cách khai báo một class.
  • Getters và Setters – xác định getters và setters cho một lớp bằng cách sử dụng các từ khóa get và set.
  • Biểu thức lớp học – học một cách khác để xác định một lớp mới bằng cách sử dụng biểu thức lớp.
  • Các phương thức tĩnh – hướng dẫn bạn cách định nghĩa các phương thức được liên kết với một lớp, chứ không phải các phiên bản của lớp đó.
  • Thuộc tính tĩnh – chỉ cho bạn cách xác định các thuộc tính tĩnh được chia sẻ bởi tất cả các phiên bản của một lớp.
  • Thuộc tính tính toán – giải thích thuộc tính tính toán và ứng dụng thực tế của nó.
  • Kế thừa – chỉ cho bạn cách mở rộng một lớp bằng cách sử dụng các từ khóa và từ khóa.extendssuper
  • new.target – giới thiệu cho bạn siêu hình.new.target

Arrow Functions

  • Arrow functions – giới thiệu arrow functions ( =>)
  • Arrow functions: when you should not use – ltìm hiểu khi nào không sử dụng arrow functions.

Symbol

  • Symbol – giới thiệu cho bạn một loại nguyên thủy mới được gọi là trong ES6symbol

Iterators & Generators

  • Iterators – giới thiệu cho bạn các giao thức lặp lại và lặp lại.
  • Generators – phát triển các chức năng có thể tạm dừng giữa chừng và sau đó tiếp tục từ nơi chúng tạm dừng.
  • yield – đi sâu vào cách sử dụng từ khóa trong trình tạo.yield

Promises

  • Promises –tìm hiểu về Promisess Javascript, chúng là gì và cách sử dụng chúng một cách hiệu quả.
  • Promise chaining – chỉ cho bạn cách thực hiện nhiều hoạt động không đồng bộ theo trình tự.
  • Promise composition: Promise.all() & Promise.race() – learn how to compose a new promise out of several promises.
  • Promise error handling – hướng dẫn bạn cách xử lý lỗi trong promises.

ES6 collections

  • Map –giới thiệu cho bạn loại chứa một bộ sưu tập các cặp khóa-giá trị.Map
  • Set – tìm hiểu cách sử dụng loại chứa một bộ sưu tập các giá trị duy nhấtSet

Array extensions

  • Array.of() – cải thiện việc tạo mảng.
  • Array.from() – tạo mảng từ các đối tượng giống như mảng hoặc có thể lặp lại.
  • Array find() – tìm một phần tử trong một mảng
  • Array findIndex() – tìm chỉ mục của một phần tử trong một mảng.

Object extensions

  • Object.assign() – sao chép một đối tượng hoặc hợp nhất các đối tượng.
  • Object.is() – kiểm tra xem hai giá trị có phải là cùng một giá trị hay không.

String extensions

  • String startsWith() – kiểm tra xem một chuỗi có bắt đầu bằng một chuỗi khác không.
  • String endsWith() – xác định xem một chuỗi có kết thúc bằng một chuỗi khác hay không.
  • String includes() – kiểm tra xem một chuỗi có chứa chuỗi khác không.

Proxy & Reflection

  • Proxy – tìm hiểu cách sử dụng đối tượng proxy bao bọc một đối tượng khác (mục tiêu) và chặn các hoạt động cơ bản của đối tượng mục tiêu.
  • Reflection – hướng dẫn bạn cách sử dụng ES6 Reflection API để thao tác với các biến, thuộc tính và phương thức của các đối tượng trong thời gian chạy.

Lời kết

TypeScript vẫn đang liên tục được phát triển, nếu bạn đọc được bài viết này thì chắc hẳn bạn là một dev JS (Nếu không phải tôi khuyên bạn nên tiếp cận JS ES6 trước khi học Typesript). Vì vậy trong khuôn khổ bài viết tôi sẽ không chỉ rõ cách sử dụng cơ bản. Bạn nên tham khảo thêm tại website của TypeScript để cập nhật tính năng mới.

Tags: javascriptreact nativetypescript

Related Posts

Quy ước đặt tên JavaScript
JavaScript

Quy ước đặt tên JavaScript

Js  phân biệt chữ hoa , chữ thườngĐặt tên biến phải có nghĩa  đọc là hiểu ngay ,để không...

by admin
04/12/2022
Triển khai tính năng Account hold(Phần 1) – Hướng dẫn đầy đủ cho Subscriptions trong Google Play
Android

Triển khai RTDN trong NodeJS Backend (Phần 2) — Hướng dẫn đầy đủ về đăng ký trong Google Play

Trong phần này, chúng tôi sẽ tạo dịch vụ phụ trợ của mình để tích hợp với Thông báo...

by admin
02/11/2022
Triển khai tính năng Account hold(Phần 1) – Hướng dẫn đầy đủ cho Subscriptions trong Google Play
Android

Triển khai tính năng Account hold(Phần 1) – Hướng dẫn đầy đủ cho Subscriptions trong Google Play

Kể từ ngày 1 tháng 11 năm 2020, Google đã bắt buộc bất kỳ nhà phát triển nào cung...

by admin
06/01/2023
Top 10 thư viện React Native bạn nên biết năm 2022
React Native

Top 10 thư viện React Native bạn nên biết năm 2022

Xin chào tất cả mọi người trong bài đăng này, tôi sẽ tạo ra 10 thư viện hàng đầu...

by admin
04/09/2022
Next Post
Top 10 thư viện React Native bạn nên biết năm 2022

Top 10 thư viện React Native bạn nên biết năm 2022

5 1 vote
Xếp hạng bài viết
Subscribe
Login
Thông báo về
guest
guest
0 Bình luận
Phản hồi nội tuyến
Xem tất cả các bình luận

Bài viết nổi bật

  • Triển khai tính năng Account hold(Phần 1) – Hướng dẫn đầy đủ cho Subscriptions trong Google Play

    Triển khai RTDN trong NodeJS Backend (Phần 2) — Hướng dẫn đầy đủ về đăng ký trong Google Play

    0 shares
    Share 0 Tweet 0
  • Tông quan về javascript, typescript và ES6

    0 shares
    Share 0 Tweet 0
  • Triển khai tính năng Account hold(Phần 1) – Hướng dẫn đầy đủ cho Subscriptions trong Google Play

    0 shares
    Share 0 Tweet 0
  • Quy ước đặt tên JavaScript

    0 shares
    Share 0 Tweet 0
  • Top 10 thư viện React Native bạn nên biết năm 2022

    0 shares
    Share 0 Tweet 0
AeDev.Net

AeDev là website học lập trình miễn phí. Với nhiều khóa học, tài liệu được thiết kế và biên tập tỉ mỉ từ những thành viên nhiều kinh nghiệm thực chiến trong ngành phần mềm. Chúng tôi không ngừng cải thiện chất lượng nội dung, cho ra nhiều bài viết chuyên sâu về những công nghệ mới như: Node.js, React Native, Android, Cloud... Trong quá trình học lập trình, bạn hoàn toàn có thể tương tác, đặt câu hỏi trực tiếp với các tác giả.
Liên hệ chúng tôi: [email protected]

Đăng ký nhận bài viết mới

© 2022 AeDev - Created by LilWind.

DMCA compliant image
No Result
View All Result
  • Buy JNews
  • Homepage
    • Home – Layout 1
  • JavaScript
  • Tin tức
  • Server
  • Nodejs
  • Flutter

© 2022 AeDev - Premium WordPress news & magazine theme by LilWind.

wpDiscuz
0
0
Rất thích suy nghĩ của bạn, hãy bình luận.x
()
x
| Trả lời