Download as pdf or txt
Download as pdf or txt
You are on page 1of 16

Javascript ES

Day 1
Tổng quan
- ES là chữ viết tắt của ECMAScript, là những phiên bản của chuẩn ECMAScript.
- ECMAScript do hiệp hội các nhà sản xuất máy tính Châu Âu đề xuất làm tiêu chuẩn của ngôn ngữ
Javascript.
- ES6 ra đời vào năm 2015. Hiện tại đã tới phiên bản ES12
- ES6 đánh dấu có nhiều sự thay đổi về code rõ rệt, các phiên bản sau tập trung chủ yếu vào các tính
năng.
- Một số tính năng của ES mà có thể mọi người đã sử dụng: Object.values() (ES8), Object.entries
(ES8), Array.prototype.includes (ES8), ...
501.10. Block Scoped Variables
Dưới đây có 3 cách khai báo biến trong JavaScript

var width = 100; // (function scoped)

let height = 200; // (block scoped)

const key = 'abc123'; // (block scoped)

Block Scoped là phạm vi trong một khối, nghĩa là chỉ hoạt động trong phạm vi được khai báo bời cặp {}, người ta
sử dụng biến let để khai báo cho biến trong cặp {}
501.10. Block Scoped Variables
501.10. Block Scoped Variables
Xác định đầu ra của 2 đoạn code sau:
501.20. Rest Parameter
Rest parameter giúp chúng ta có thể định nghĩa một hàm với số lượng tham số có thể thay đổi tuỳ ý. Khi chúng ta không biết
chắc chắn số lượng tham số cần có của một hàm chúng ta có thể sử dụng rest parameter.

Rest parameter được phân biệt với các parameter thông thường thông qua 3 dấu chấm ... được đặt phía trước tên của
parameter đặc biệt này:

Code và chạy lại đoạn code sau:


501.30. Spread Operator
Spread operator có cú pháp giống với rest parameter tuy nhiên cả hai có ý nghĩa khác nhau. Rest parameter được sử dụng khi khai
báo hàm, ngược lại spread operator được sử dụng trong các câu lệnh, biểu thức hoặc khi gọi hàm.

Sử Dụng Spread Operator Với Mảng


Nối Mảng (Concatenate Array): Trước khi ES6 được ra đời thì cách phổ biến để nối mảng là sử dụng phương thức concat() của một
mảng với đối số truyền vào là những mảng khác sẽ được nối với mảng này:

Gộp Với Giá Trị Khác: Với spread operator chúng ta còn có thể kết hợp một mảng với giá trị khác:
501.30. Spread Operator
Sử Dụng Spread Operator Với Object
Copy Object: Sử dụng spread operator chúng ta có thể dễ dàng copy object như sau:

Gộp Object: Chúng ta cũng có thể sử dụng spread operator để gộp các object với nhau:
501.30. Spread Operator
Sử Dụng Spread Operator Với Hàm
Với các hàm được khai báo với nhiều tham số khác nhau thì sử dụng spread operator cho phép chúng ta truyền vào một giá
trị duy nhất là một mảng:

Chúng ta cũng có thể sử dụng spread operator kết hợp với đối số thông thường:
501.40. Template Literal
Template literal là tính năng mới trong ECMAScript 6 cho phép lập trình viên có thể nhúng biểu thức JavaScript (ví dụ như
giá trị của biến, hoặc kết quả của một phép toán...) bên trong chuỗi string một cách dễ dàng.
Sử dụng phiên bản trước của ECMAScript thì việc nối chuỗi với giá trị của một biến hoặc biểu thức thường sử dụng toán tử +
và chúng ta sẽ thường được thấy những đoạn code tương tự sau xuất hiện trong source code:
501.40. Template Literal
Cú Pháp Template Literal

Trong đó javascript_expression là một biểu thức JavaScript.


Ví dụ:
501.50. Object Literal
Object trong JavaScript có thể được tạo theo một số cách khác nhau. Object literal là kiểu cú pháp tạo object sử dụng cặp
dấu ngoặc {} và bên trong đó là danh sách các property (thuộc tính) của object.
Với phiên bản ECMAScript trước đây chúng ta thường sẽ:
501.60. Block Scoped Variables
Code lại 2 đoạn code dưới đây, chạy và comment giải thích kết quả output ở phía dưới đoạn code vừa gõ:
501.70. Rest Parameter
Viết 1 hàm truyền vào n số tự nhiên bất kỳ và trả ra tổng của n số đó (n thay đổi) (Gợi ý: Sử dụng rest parameter)

Ví dụ:

● Truyền vào 1 trả ra 1


● Truyền vào 1, 2, 3 trả ra 6
● Truyền vào 1, 2, 3, 4, 5 trả ra 15
501.80. Spread Operator
Test Yêu cầu

1 Cho 2 mảng let arr1 = ['A', 'B', 'C']; và let arr2 = ['X', 'Y', 'Z'];. Viết code in ra mảng
mới chứa tất cả các phần tử của 2 mảng trên

2 Cho mảng sau let fruits = ['Apple','Orange','Banana'];. Viết code in ra mảng mới
chứa tất cả các phần tử của mảng trên cộng thêm phần tử 'Cherry'

3 Cho 2 object var obj1 = { id: 101, name: 'Jhon Doe' } và var obj2 = { age: 25,
country: 'USA'}. Viết code in ra object mới chứa tất cả các thuộc tính và giá trị
tương ứng của 2 object trên.
501.90. Template Literal

Viết code in ra console thời gian ngày hôm nay sử dụng template literal.
Ví dụ: Hôm nay là ngày 28 tháng 9 năm 2021
Gợi ý: Sử dụng Date trong JS trả ra theo mẫu:
Hôm nay là ngày { giá trị ngày } tháng { giá trị tháng } năm { giá trị năm }

You might also like