- vừa được xem lúc

Kiến thức nổi bật về Javascript ES6

0 0 20

Người đăng: Thống PM

Theo Viblo Asia

Tìm hiểu về JavaScript ES6


1. ECMAScript là gì?

  • Được đề xuất làm tiêu chuẩn hoạt động của ngôn ngữ JavaScript trên các trình duyệt khác nhau
  • Tạo ra sự thống nhất, logic và tường minh khi code javascript trên các trình duyệt khác nhau

Tóm lại:

  • ECMAScript là tiêu chuẩn hoạt động của ngôn ngữ JavaScript trên các browser

2. ES6 là gì?

  • ES6 là chữ viết tắt của ECMAScript 6
  • ES6 ra đời vào năm 2015 nên cái tên ES2015 được lấy làm tên chính thức
  • Năm 2017, phiên bản ES7 đang trong quá trình nghiên cứu và phát triển, hứa hẹn sẽ ra mắt với nhiều chức năng mới lạ đáng mong đợi

3. Các chức năng của ES6

3.1 Arrow function:

  • Cho phép chúng ta viết cú pháp function ngắn hơn

Cú pháp function:

// Trong ES5 hello = function() { return "Hello World!";
};
// Trong ES6 hello = () => { return "Hello World!";
};

3.2 Multi-line String

  • Cú pháp khai báo một chuỗi có nhiều trong trong JS

Ví dụ:

// Trong ES5 var roadPoem = 'Then took the other, as just as fair,\n\t' + 'And having perhaps the better claim\n\t' + 'Because it was grassy and wanted wear,\n\t' + 'Though as for that the passing there\n\t' + 'Had worn them really about the same,\n\t' var fourAgreements = 'You have the right to be you.\n\ You can only be you when you do your best.' 
// Trong ES6 var roadPoem = `Then took the other, as just as fair, And having perhaps the better claim Because it was grassy and wanted wear, Though as for that the passing there Had worn them really about the same,` var fourAgreements = `You have the right to be you. You can only be you when you do your best.` 

3.3 Template Literals

  • Hiển thị biến trong chuỗi

Ví dụ:

// Trong ES5 var name = 'Name is ' + first + ' ' + last + '.';
var url = 'http://localhost:3000/api/messages/' + id; 
// Trong ES6 var name = `Name is ${first} ${last}.`;
var url = `http://localhost:3000/api/messages/${id}`; 

3.4 Block Scoped:

  • Let cho phép chúng ta khai báo biến trong phạm vi các khối lệnh. Các khối lệnh được định nghĩa bởi cặp ngoặc nhọn {}.

Ví dụ:

// Trong ES5 function calculateTotalAmount () { var amount = 0 for (int i=0; i< 1; i++) { var amount = 100 } return amount
}
console.log(calculateTotalAmount(true)); // result: 100 
// Trong ES6 function calculateTotalAmount () { let amount = 0 for (int i=0; i< 1; i++) { let amount = 100 } return amount
}
console.log(calculateTotalAmount(true)); // result: 0 

3.5 Destructuring

  • Đơn giản chỉ là cú pháp để hủy cấu trúc mảng, object

Ví dụ:

// Trong ES5 const example = ["apple", "VietNam", "Mustang"]; const fruits = example[0];
const country = example[1];
const car = example[2];
// Trong ES6 const example = ["apple", "VietNam", "Mustang"]; const [fruits, country, car] = example;
  • Nếu chỉ muốn lấy fruitscar thì hãy làm như sau:
// Trong ES6 const example = ["apple", "VietNam", "Mustang"]; const [fruits,, car] = example;
  • Một số cách áp dụng khác
// Trả về một mảng
// Trong ES6 function calculate(a, b, c) { const sum = a + b + c; const sub = a - b - c; const mul = a * b * c; const div = (a / b) / c; return [sum, sub, mul, div];
} const [sum, sub, mul, div] = calculate(8, 4, 2);
// Sử dụng một đối tượng bên trong hàm
// Trong ES6 const example = { name: "Thong", age: "40", college: "Bach Khoa", vehicle: "Motobike"
} DisplayInfo(example); function DisplayInfo({name, age, college, vehicle}) { const message = "I'm " + name + ", " + age + "years old. " + "My college is " + college + ", I go to school by " + vehicle + "."; console.log(message);
} 

3.6 Default Parameter

  • Thiết lập giá trị mặc định cho tham số

Ví dụ:

// Trong ES5 var hello = function(height, color, url) { var height = height || 50; var color = color || 'red'; var url = url || 'http://viblo.asia'; return "Complete!";
};
// Trong ES6 hello = (height = 50, color = 'red', url = 'http://azat.co') => { return "Complete!";
};

3.7 Classes

  • Trước kia JS không có định nghĩa class chính thống và phải sử dụng prototype trong function để định nghĩa:
// Trong ES5 function Vacation(destination, length) { this.destination = destination this.length = length } Vacation.prototype.print = function() { console.log(`${this.destination} will take ${this.length} days`) } let maui = new Vacation("Maui", 7) maui.print() // Maui will take 7 days
  • Nhưng trong ES6 đã có định nghĩa class, nhưng về bản chất thì vẫn xử lý bằng prototype, chỉ là cú pháp tường minh hơn thôi
// Trong ES6 class Vacation { constructor(destination, length) { this.destination = destination this.length = length } print() { console.log(`${this.destination} will take ${this.length} days`) } } let maui = new Vacation("Maui", 7) maui.print() // Maui will take 7 days 

3.8 Promises

  • Promise là một cơ chế trong JavaScript giúp bạn thực thi các tác vụ bất đồng bộ mà không rơi vào callback hell. Xem thêm cách hoạt động của JS để hiểu rõ hơn. Nhưng đơn giản Promise chỉ là thực hiện các câu lệnh tuần tự, chỉ khi then() đằng trước thực hiện xong thì then() sau mới có thể thực hiện

// Trong ES6 let myPromise = new Promise(function(myResolve, myReject) { myResolve(); // Được thực hiện khi thành công myReject(); // Được thực hiện khi thất bại
}); myPromise.then( function(value) { /* code nếu thành công */ }, function(error) { /* code nếu có lỗi */ }
);
  • Promise có tác dụng rất tuyệt vời, để trở thành một dev web tốt thì sử dụng thành thạo promise là kĩ năng cần thiết. Đây là một số tài liệu tham khảo mình đã từng dùng để học cách sử dụng promise: Link 1, Link 2

3.9 Array Methods

  • Việc xử lý thuật toán và dữ liệu bằng array là điều thường xuyên trong JavaScript, các method trong ES hỗ trợ rất tốt việc xử lý này.
  • Trong phiên bản ES6 đã hỗ trợ thêm một method là map(). Về cá nhân mình thấy method này rất hữu ích khi kết hợp với việc xử lý code trong React.
// Trong ES6 const numbers = [2, 3, 4, 5];
const newArr = numbers.map(mulTen) function mulTen(num) { return num * 10;
} // Ket qua: [20, 30, 40, 50]

3.10 Spread Operator

  • Toán tử trải rộng (...) cho phép chúng ta nhanh chóng sao chép tất cả hoặc một phần của một mảng hoặc đối tượng hiện có vào một mảng hoặc đối tượng khác
// Trong ES6 const arr1 = [1, 2, 3];
const arr2 = [4, 5, 6];
const numbersCombined = [...arr1, ...arr2]; // Ket qua: [1, 2, 3, 4, 5, 6]
  • Hoặc
// Trong ES6 const numbers = [1, 2, 3, 4, 5, 6]; const [one, two, ...rest] = numbers; // Ket qua: one = 1; two = 2; rest = [3, 4, 5, 6]
  • Còn nhiều cách sử dụng hay ho khác bạn hãy thử nghĩ xem nhé!

3.11 Ternary Operator

  • Toán tử ba ngôi
  • Toán tử bậc ba là một toán tử có điều kiện được đơn giản hóa như if / else.
  • Cú pháp: điều kiện? <biểu thức nếu đúng>: <biểu thức nếu sai>
// Trong ES5 if (checkName) { DisplayName();
} else { ThrowError();
}
// Trong ES6 checkName ? DisplayName() : ThrowError();

3.12 Modules

  • Cho phép bạn chia nhỏ mã của mình thành các tệp riêng biệt và kết nối chúng với nhau thông qua lệnh import và export
  • Điều này làm cho việc sửa đổi và phát triển source code dễ dàng hơn khi dự án của bạn phình to lên
  • Nếu bạn đã hoặc đang tiếp xúc với React.Js thì chẳng còn lạ gì với việc import và export file
// Trong ES6 // sort.js
export function Hello(user) { console.log(`Hello, ${user}`);
} // index.js
import {Hello} from './sort.js';
Hello('FooBar');
// Hello, Foobar
  • NOTE: Nếu bạn muốn tìm hiểu rõ hơn về import và export trong js thì đây là link dành cho bạn: exportimport

4. Lich sử của ECMAScript

  • Mình hơi lười viết đoạn này, bạn nào thích tìm hiểu sâu thì đây là LINK nhé!!!!

Chúc mọi người thành công nhé!!!

Bình luận

Bài viết tương tự

- vừa được xem lúc

Mọi thứ bạn cần biết về Destructuring trong Ruby 3

Chào mừng bạn đến với bài viết đầu tiên trong loạt bài viết về các tính năng mới thú vị trong Ruby 3 của chúng ta! Hôm nay chúng ta sẽ xem xét cách cải thiện pattern matching (so sánh pattern) và phép gán phải giúp ta có thể “destructure” (phân rã) các array và hash trong Ruby 3 — giống như cách bạn

0 0 27

- vừa được xem lúc

Cách sử dụng Destructuring trong JavaScript

Destructuring Javascript là gì. Dưới đây là một số ví dụ với Destructuring. Ví dụ 1:. var a, b;.

0 0 27

- vừa được xem lúc

Tạo một số hàm common hay dùng trong javascript - Part 1

Chào mọi người, từ hôm nay mình sẽ bắt đầu series tạo các hàm common (có nhiều người gọi bằng utils hay helpers đều được nhé). Các hàm common javascript thì theo mình dự án nào cũng có, từ nhỏ đến lớn, từ đơn giản đến phức tạp, từ dự án cá nhân đến công ty.

0 0 27

- vừa được xem lúc

Sổ tay #JavaScript_2020 - Bài 2: #Node.js là gì? | #LeBaoChau #Howkteam

Sổ tay #JavaScript_2020 - Bài 2: #Node.js là gì? | #Howkteam. - Tác giả: Lê Bảo Châu . - Hình ảnh minh họa: Kteam .

0 0 45

- vừa được xem lúc

Sổ tay #JavaScript - Bài 3: Cơ chế bất đồng bộ trong Javascript | #Howkteam

Sổ tay #JavaScript - Bài 3: Cơ chế bất đồng bộ trong Javascript | #Howkteam. - Tác giả: #Lê_Bảo_Châu . - Hình ảnh minh họa: Kteam . .

0 0 38

- vừa được xem lúc

Sổ tay #JavaScript - Bài 4: Node.js hoạt động như thế nào | #Howkteam

Sổ tay #JavaScript - Bài 4: Node.js hoạt động như thế nào | #Howkteam. - Tác giả: #Lê_Bảo_Châu . - Hình ảnh minh họa: Kteam .

0 0 38