hocvietcode.com
  • Trang chủ
  • Học lập trình
    • Lập trình C/C++
    • Cấu trúc dữ liệu và giải thuật
    • Lập trình HTML
    • Lập trình Javascript
      • Javascript cơ bản
      • ReactJS framework
      • AngularJS framework
      • Typescript cơ bản
      • Angular
    • Lập trình Mobile
      • Lập Trình Dart Cơ Bản
        • Dart Flutter Framework
    • Cơ sở dữ liệu
      • MySQL – MariaDB
      • Micrsoft SQL Server
      • Extensible Markup Language (XML)
      • JSON
    • Lập trình PHP
      • Lập trình PHP cơ bản
      • Laravel Framework
    • Lập trình Java
      • Java Cơ bản
    • Lập trình C#
      • Lập Trình C# Cơ Bản
      • ASP.NET Core MVC
    • Machine Learning
  • WORDPRESS
    • WordPress cơ bản
    • WordPress nâng cao
    • Chia sẻ WordPress
  • Kiến thức hệ thống
    • Microsoft Azure
    • Docker
    • Linux
  • Chia sẻ IT
    • Tin học văn phòng
      • Microsoft Word
      • Microsoft Excel
    • Marketing
      • Google Adwords
      • Facebook Ads
      • Kiến thức khác
    • Chia sẻ phần mềm
    • Review công nghệ
    • Công cụ – tiện ích
      • Kiểm tra bàn phím online
      • Kiểm tra webcam online
Đăng nhập
  • Đăng nhập / Đăng ký

Please enter key search to display results.

Home
  • Javascript cơ bản
Giới thiệu tổng quan về ES6

Giới thiệu tổng quan về ES6

  • 23-11-2023
  • Toanngo92
  • 0 Comments

JavaScript ES6 (còn được gọi là ECMAScript 2015 hoặc ECMAScript 6) là phiên bản JavaScript mới hơn được giới thiệu vào năm 2015.

ECMAScript là tiêu chuẩn mà ngôn ngữ lập trình JavaScript sử dụng. ECMAScript cung cấp đặc điểm kỹ thuật về cách thức hoạt động của ngôn ngữ lập trình JavaScript. Ở bài dưới đây, chúng ta sẽ cùng tìm hiểu một số khái niệm tổng quan về ES6.

Mục lục

  • Khai báo biến
    • Từ khóa let
  • Khai báo hằng số
  • Từ khóa const
  • Định nghĩa hàm (Arrow function)
  • Định nghĩa Lớp (Class)
  • Tham số mặc định (Default Parameter)
  • Khuôn mẫu chữ (Template Literals)
  • Hủy cấu trúc (Destructuring)
  • Từ khóa import và export
  • Từ khóa Promise (lời hứa)
  • Các tham số còn lại (Rest Parameter) và toán tử trải rộng (Spread Operator)
    • Rest Parameter
    • Spread Operator

Khai báo biến

Từ khóa let

JavaScript let được sử dụng để khai báo các biến. Trước đây, các biến được khai báo bằng câu lệnh var.

Các biến được khai báo bằng let là block-scoped. Có nghĩa là phạm vi biến chỉ có thể truy cập được trong một khối cụ thể. Ví dụ:

// variable declared using let
let name = 'Hello';
{
    // can be accessed only inside
    let name = 'Toanngo';

    console.log(name); // Toanngo
}
console.log(name); // Hello

Khai báo hằng số

Từ khóa const

Câu lệnh const được sử dụng để khai báo hằng số trong JavaScript.

Ví dụ:

// name declared with const cannot be changed 
const name = 'This is a constanct';

Sau khi khai báo, bạn không thể thay đổi giá trị của biến const. Ngoài ra const có thể sử dụng để khai báo hàm, được thẻ hiện ở các đoạn sau.

Định nghĩa hàm (Arrow function)

Trong ES6, có thể sử dụng các Arrow Function (hàm mũi tên) để tạo biểu thức hàm. Ví dụ:

// old version
function function_name (param){
   // todo
}

// using const

const function_name1 = function(param){
    // todo
}

// ES6

const function_name2 = (param) =>{
 // todo
}

Định nghĩa Lớp (Class)

Để khởi tạo lớp trong Javascript, sử dụng từ khóa Class. Với việc khởi tạo biến, sử dụng từ khóa new

class Car {
  constructor(name) {
    this.name = name;
  }
}

let myCar1 = new Car('Hyundai I10');
let myCar2 = new Car('Toyota vios');

console.log(myCar1.name); // Hyundai I10

Tham số mặc định (Default Parameter)

Trong phiên bản ES6, bạn có thể truyền các giá trị mặc định trong đối số của hàm, sau khi định nghĩa, khi gọi hàm nếu lập trình viên không truyền tham số, javascript tự hiểu sẽ sử dụng giá trị được gán mặc định cho biến khi định nghĩa. Ví dụ:

//define function
const sum = (x, y = 5) => {

    // take sum
    // the value of y is 5 if not passed
    console.log(x + y);
}
// call function
sum(5); // 10
sum(5, 15); // 20

Khuôn mẫu chữ (Template Literals)

Template Literals (khuôn mẫu chữ) hay còn gọi là Template Strings là một cú pháp mới để khai báo String trong JavaScript được giới thiệu trong ES2015/ES6. Nó cho phép chúng ta sử dụng multi-line string, biến, biểu thức, hàm bên trong String mà không phải thông qua phép nối chuỗi.

Ví dụ phong cách cũ:

let first_name = "Hello";
let last_name = "World";

console.log('This is ' + first_name + ' ' + last_name);

Phong cách ES6:

let first_name = "Jack";
let last_name = "Sparrow";

console.log(`Hello ${first_name} ${last_name}`);

Lưu ý code khi sử dụng phong cách cũ vẫn chạy bình thường.

Hủy cấu trúc (Destructuring)

Destructuring là một cú pháp cho phép chúng ta phân tách nhanh các thuộc tính của một Object hoặc một Array vào danh sách biến hoặc cấu trúc khác theo mong muốn, giúp tiết kiệm thời gian viết mã.

Ví dụ phong cách cũ:

// before you would do something like this
const person = {
    name: 'Sara',
    age: 25,
    gender: 'female'    
}

let name = person.name;
let age = person.age;
let gender = person.gender;

console.log(name); // Sara
console.log(age); // 25
console.log(gender); // female

Ví dụ phong cách ES6:

const person = {
    name: 'Sara',
    age: 25,
    gender: 'female'    
}

let { name, age, gender } = person;

console.log(name); // Sara
console.log(age); // 25
console.log(gender); // female

Từ khóa import và export

Trong ES6, chúng ta có thể export (xuất) một hàm, lớp từ một tệp và sử dụng nó trong một tệp khác bằng cách import (nhập) nó. Điều này giúp tạo ra các thành phần có thể sử dụng lại.

Ví dụ export:

Tạo file test.js

// export
export default function myFeature(name, age) {
    console.log(`The name is ${name}. And age is ${age}.`);
}

Ví dụ import:

import contact from './test.js';

contact('Hello', 10);
// The name is Hello. And age is 10

Từ khóa Promise (lời hứa)

Từ khóa promise sử dụng để xử lý bất đồng bộ trong ứng dụng Javascript. Cách hiểu đơn giản giống như khi thực hiện một công việc xong sau đó sẽ làm gì tiếp theo. Ví dụ:

// returns a promise
let countValue = new Promise(function (resolve, reject) {
   reject('Promise rejected'); 
});

// executes when promise is resolved successfully
countValue.then(
    function successValue(result) {
        console.log(result); // Promise resolved
    },
 )

Các tham số còn lại (Rest Parameter) và toán tử trải rộng (Spread Operator)

Rest Parameter

ES6 cung cấp khái niệm Rest Parameter để biểu diễn số lượng đối số không xác định dưới dạng một mảng. Ví dụ:

// define function
const show = (a, b, ...args) => {
  console.log(a); // one
  console.log(b); // two
  console.log(args); // ["three", "four", "five", "six"]
}
// call function
show('one', 'two', 'three', 'four', 'five', 'six')

Spread Operator

let arr1 = ['one', 'two'];
let arr2 = [...arr1, 'three', 'four', 'five'];
console.log(arr2); // ["one", "two", "three", "four", "five"]

Rest Parameter và Spread Operator có cú pháp hơi tương đồng nhau. Tham số còn lại (Rest Parameter) ngược lại với toán tử trải rộng (Spread Operator). trong khi toán tử trải rộng Spread Operator mở rộng các phần tử của một iterable, toán tử còn lại sẽ nén chúng lại. Trong các hàm khi chúng ta yêu cầu truyền đối số nhưng không chắc mình phải truyền bao nhiêu đối số, tham số còn lại sẽ giúp việc này dễ dàng hơn.

Bài tập

1. Biến, kiểu dữ liệu và toán tử

  1. Khai báo 3 biến name, age, isStudent và in ra màn hình.

  2. Nhập vào hai số và in ra tổng, hiệu, tích, thương.

  3. Chuyển đổi kiểu dữ liệu: nhập chuỗi "123" và ép sang kiểu số.

  4. Tính chu vi và diện tích hình tròn (bán kính nhập từ bàn phím).

  5. Tính BMI = cân nặng / (chiều cao²), in ra chỉ số và đánh giá.

  6. Đổi đơn vị: nhập số giây, đổi sang giờ – phút – giây.

  7. Nhập nhiệt độ °C, chuyển sang °F theo công thức F = C * 9/5 + 32.

  8. Nhập số tiền VND, đổi sang USD theo tỉ giá cố định.


2. Cấu trúc điều kiện (if, else if, switch)

  1. Nhập tuổi → in ra người lớn, trẻ em hay thanh niên.

  2. Kiểm tra số nhập vào là chẵn hay lẻ.

  3. Kiểm tra năm nhập vào có phải năm nhuận không.

  4. Nhập điểm trung bình → xếp loại (giỏi, khá, trung bình, yếu).

  5. Nhập tháng → in ra số ngày trong tháng (có xét năm nhuận).

  6. Nhập ba số → in ra số lớn nhất và nhỏ nhất.

  7. Viết chương trình tính tiền điện theo bậc thang.

  8. Viết máy tính mini đơn giản (2 số + toán tử + - * /).


🔄 3. Vòng lặp (for, while, do while)

  1. In ra các số từ 1 đến 100.

  2. In ra các số chẵn từ 1 đến 100.

  3. Tính tổng các số từ 1 đến n.

  4. Tính giai thừa của n.

  5. In ra bảng cửu chương 1–10.

  6. Nhập số n → in ra dãy Fibonacci đến n phần tử.

  7. Tính tổng các chữ số của một số nguyên dương.

  8. Đếm số lượng chữ số của một số.

  9. Đảo ngược số nguyên (ví dụ: 12345 → 54321).

  10. Kiểm tra số nguyên tố.


4. Mảng (Array)

  1. Tạo mảng 5 số nguyên, in ra tổng các phần tử.

  2. Tìm phần tử lớn nhất, nhỏ nhất trong mảng.

  3. Đếm số phần tử chẵn trong mảng.

  4. Tính trung bình cộng của các phần tử.

  5. Nhập vào mảng tên sinh viên → sắp xếp theo thứ tự A–Z.

  6. Nối hai mảng lại thành một mảng mới.

  7. Loại bỏ phần tử trùng lặp trong mảng.

  8. Tìm vị trí đầu tiên của phần tử x trong mảng.

  9. Đảo ngược mảng mà không dùng reverse().

  10. Tính tổng các số lẻ trong mảng.


5. Chuỗi (String)

  1. Đếm số ký tự trong chuỗi.

  2. Viết hoa ký tự đầu tiên của chuỗi.

  3. Đếm số nguyên âm trong chuỗi.

  4. Kiểm tra chuỗi có đối xứng (palindrome) hay không.

  5. Tách chuỗi "Xin chào JavaScript" thành mảng từ.

  6. Nối hai chuỗi bất kỳ.

  7. Thay thế tất cả ký tự "a" bằng "@".

  8. Kiểm tra chuỗi có chứa từ khóa "JS" hay không.

  9. Cắt lấy 5 ký tự đầu tiên của chuỗi.

  10. Đảo ngược chuỗi nhập vào.


6. Hàm (Function)

  1. Viết hàm tính bình phương một số.

  2. Viết hàm tính tổng từ 1 đến n.

  3. Viết hàm kiểm tra số nguyên tố.

  4. Viết hàm đảo ngược chuỗi.

  5. Viết hàm trả về số lớn nhất trong mảng.

  6. Viết hàm đếm số nguyên âm trong chuỗi.

  7. Viết hàm tính giai thừa bằng đệ quy.

  8. Viết hàm kiểm tra năm nhuận.

  9. Viết hàm trả về Fibonacci thứ n.

  10. Viết hàm tính tổng các phần tử lẻ trong mảng.


 7. Bài tổng hợp logic

  1. Giả lập trò chơi đoán số (máy random số 1–100, người đoán đến khi đúng).

  2. Tạo chương trình nhập dãy điểm học sinh → in ra điểm trung bình, cao nhất, thấp nhất.

  3. Nhập ngày/tháng/năm → in ra ngày kế tiếp.

  4. Tạo hàm chuẩn hóa họ tên (xóa khoảng trắng thừa, viết hoa chữ cái đầu).

  5. Mô phỏng rút thăm trúng thưởng (chọn ngẫu nhiên 1 phần tử từ mảng).

 

Yêu cầu:

  1. Tạo một lớp Person với các thuộc tính và phương thức sau:
    • Thuộc tính:
      • name (tên)
      • age (tuổi)
      • gender (giới tính)
      • address (địa chỉ)
    • Phương thức:
      • introduce():
        • In ra thông tin dạng:

          "My name is [name], I am [age] years old, I am a [gender], and I live in [address]."

      • isAdult():
        • Trả về true nếu age >= 18, ngược lại trả về false.
      • updateAddress(newAddress):
        • Cập nhật địa chỉ mới.
  2. Tạo 3 đối tượng từ lớp Person với các giá trị khác nhau.

So sánh tuổi của 2 đối tượng (ai lớn tuổi hơn) và in ra kết quả:

"[Person1] is older than [Person2]" hoặc "[Person1] is younger than [Person2]".

Yêu cầu bổ sung:

    1. So sánh toàn bộ đối tượng:
      • Tạo một phương thức equals() để kiểm tra hai đối tượng Person có cùng thông tin không (tên, tuổi, giới tính, địa chỉ).
      • In ra:

        "[Person1] and [Person2] are the same." hoặc "[Person1] and [Person2] are different."

    2. Tạo danh sách đối tượng:
      • Lưu các đối tượng Person vào một danh sách (mảng).
      • Lọc danh sách để tìm những người trưởng thành (isAdult() === true).

Bài viết liên quan:

Khái niệm bất đồng bộ , Async/Await trong javascript

THÊM BÌNH LUẬN Cancel reply

Dịch vụ thiết kế Wesbite

NỘI DUNG MỚI CẬP NHẬT

Giải thuật Qui hoạch động (Dynamic Programming) 

Thẻ a trong HTML và các thuộc tính của thẻ a thường dùng

Sắp xếp chọn – Selection Sort

Cấu trúc dữ liệu danh sách liên kết (LinkedList)

Khái niệm bất đồng bộ , Async/Await trong javascript

Giới thiệu

hocvietcode.com là website chia sẻ và cập nhật tin tức công nghệ, chia sẻ kiến thức, kỹ năng. Chúng tôi rất cảm ơn và mong muốn nhận được nhiều phản hồi để có thể phục vụ quý bạn đọc tốt hơn !

Liên hệ quảng cáo: [email protected]

Kết nối với HỌC VIẾT CODE

© hocvietcode.com - Tech888 Co .Ltd since 2019

Đăng nhập

Trở thành một phần của cộng đồng của chúng tôi!
Registration complete. Please check your email.
Đăng nhập bằng google
Đăng kýBạn quên mật khẩu?

Create an account

Welcome! Register for an account
The user name or email address is not correct.
Registration confirmation will be emailed to you.
Log in Lost your password?

Reset password

Recover your password
Password reset email has been sent.
The email could not be sent. Possible reason: your host may have disabled the mail function.
A password will be e-mailed to you.
Log in Register
×