20 thủ thuật javascript giúp bạn viết code chuyên nghiệp hơn

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

Dưới đây là 20 thủ thuật về JavaScript giúp bạn viết mã hiệu quả và dễ đọc hơn. Từ cách sử dụng các toán tử, khai báo biến, xử lý mảng đến việc sử dụng Promise và Async/Await để xử lý các hoạt động bất đồng bộ. Bạn cũng có thể sử dụng try/catch để xử lý lỗi hoặc Debugger để gỡ lỗi mã JavaScript một cách dễ dàng. Với những thủ thuật này, bạn có thể tăng tốc độ phát triển và nâng cao chất lượng đoạn mã JavaScript của mình.

Dùng toán tử ternary để viết code ngắn gọn hơn

Thay vì sử dụng if/else, bạn có thể sử dụng toán tử ternary để viết code ngắn gọn hơn. Ví dụ:

// Sử dụng if/else
let x = 10;
let result;
if (x > 5) {
  result = 'x lớn hơn 5';
} else {
  result = 'x nhỏ hơn hoặc bằng 5';
}

// Sử dụng toán tử ternary
let x = 10;
let result = x > 5 ? 'x lớn hơn 5' : 'x nhỏ hơn hoặc bằng 5';

Dùng Destructuring để trích xuất các thuộc tính của object và các phần tử của mảng

Bạn có thể sử dụng Destructuring để trích xuất các thuộc tính của object và các phần tử của mảng, giúp code ngắn gọn và dễ đọc hơn. Ví dụ:

// Trích xuất các thuộc tính của object
let person = { name: 'John', age: 30, address: '123 Main St' };
let { name, age } = person;

// Trích xuất các phần tử của mảng
let numbers = [1, 2, 3, 4, 5];
let [first, second, ...rest] = numbers;

Dùng Spread Operator để kết hợp mảng và sao chép object

Bạn có thể sử dụng Spread Operator để kết hợp mảng và sao chép object. Ví dụ:

// Kết hợp mảng
let arr1 = [1, 2, 3];
let arr2 = [4, 5, 6];
let combinedArr = [...arr1, ...arr2]; // [1, 2, 3, 4, 5, 6]

// Sao chép object
let obj1 = { name: 'John', age: 30 };
let obj2 = { ...obj1 }; // { name: 'John', age: 30 }

Sử dụng Arrow Function để viết code ngắn gọn hơn

Bạn có thể sử dụng Arrow Function để viết code ngắn gọn hơn. Ví dụ:

// Sử dụng function
function add(a, b) {
  return a + b;
}

// Sử dụng Arrow Function
let add = (a, b) => a + b;

Sử dụng template literals để kết hợp các biến và chuỗi

Bạn có thể sử dụng template literals để kết hợp các biến và chuỗi. Ví dụ:

let name = 'John';
let age = 30;
let message = `My name is ${name} and I'm ${age)

Sử dụng Promise để xử lý các tác vụ bất đồng bộ

Bạn có thể sử dụng Promise để xử lý các tác vụ bất đồng bộ và tránh việc sử dụng callback. Ví dụ:

function fetchData() {
  return new Promise((resolve, reject) => {
    // Xử lý tác vụ bất đồng bộ ở đây
    // Nếu thành công, sử dụng resolve để trả về kết quả
    // Nếu thất bại, sử dụng reject để trả về lỗi
  });
}

fetchData()
  .then((data) => {
    // Xử lý dữ liệu trả về
  })
  .catch((error) => {
    // Xử lý lỗi
  });

Sử dụng Async/Await để xử lý tác vụ bất đồng bộ

Bạn có thể sử dụng Async/Await để xử lý tác vụ bất đồng bộ một cách dễ đọc và dễ hiểu hơn. Ví dụ:

async function fetchData() {
  try {
    // Xử lý tác vụ bất đồng bộ ở đây
    // Nếu thành công, sử dụng return để trả về kết quả
    // Nếu thất bại, sử dụng throw để trả về lỗi
  } catch (error) {
    // Xử lý lỗi
  }
}

async function main() {
  try {
    let data = await fetchData();
    // Xử lý dữ liệu trả về
  } catch (error) {
    // Xử lý lỗi
  }
}

Sử dụng Map và Filter để xử lý các phần tử trong mảng

Bạn có thể sử dụng Map và Filter để xử lý các phần tử trong mảng. Ví dụ:

let numbers = [1, 2, 3, 4, 5];

// Sử dụng Map để xử lý các phần tử trong mảng
let squaredNumbers = numbers.map((number) => number * number);

// Sử dụng Filter để lọc các phần tử trong mảng
let evenNumbers = numbers.filter((number) => number % 2 === 0);

Sử dụng Set để loại bỏ các phần tử trùng lặp trong mảng

Bạn có thể sử dụng Set để loại bỏ các phần tử trùng lặp trong mảng. Ví dụ:

let numbers = [1, 2, 3, 3, 4, 5, 5];

let uniqueNumbers = [...new Set(numbers)]; // [1, 2, 3, 4, 5]

Sử dụng Default Parameter để đặt giá trị mặc định cho tham số của hàm

Bạn có thể sử dụng Default Parameter để đặt giá trị mặc định cho tham số của hàm. Ví dụ:

function greet(name = "World") {
  console.log(`Hello, ${name}!`);
}

greet(); // Hello, World!
greet("John"); // Hello, John!

Sử dụng Destructuring để trích xuất giá trị từ đối tượng hoặc mảng

Bạn có thể sử dụng Destructuring để trích xuất giá trị từ đối tượng hoặc mảng. Ví dụ:

let user = {
  name: "John",
  age: 30,
  address: {
    city: "New York",
    country: "USA",
  },
};

// Trích xuất giá trị từ đối tượng
let { name, age } = user;
console.log(name, age); // John 30

// Trích xuất giá trị từ mảng
let numbers = [1, 2, 3];
let [first, second] = numbers;
console.log(first, second); // 1 2

Sử dụng Spread Operator để truyền tham số hoặc kết hợp các mảng

Bạn có thể sử dụng Spread Operator để truyền tham số hoặc kết hợp các mảng. Ví dụ:

function sum(a, b, c) {
  return a + b + c;
}

let numbers = [1, 2, 3];

console.log(sum(...numbers)); // 6

let numbers1 = [1, 2, 3];
let numbers2 = [4, 5, 6];

let combinedNumbers = [...numbers1, ...numbers2]; // [1, 2, 3, 4, 5, 6]

Sử dụng Ternary Operator để rút gọn câu lệnh if/else

Bạn có thể sử dụng Ternary Operator để rút gọn câu lệnh if/else. Ví dụ:

let isTrue = true;

// Sử dụng Ternary Operator để rút gọn câu lệnh if/else
let message = isTrue ? "It's true!" : "It's false!";

console.log(message); // It's true!

Sử dụng Template Literals để tạo chuỗi kết hợp với biến

Bạn có thể sử dụng Template Literals để tạo chuỗi kết hợp với biến. Ví dụ:

let name = "John";
let age = 30;

// Sử dụng Template Literals để tạo chuỗi kết hợp với biến
let message = `Hello, my name is ${name} and I'm ${age} years old.`;

console.log(message); // Hello, my name is John and I'm 30 years old.

Sử dụng Arrow Function để viết mã ngắn gọn hơn

Bạn có thể sử dụng Arrow Function để viết mã ngắn gọn hơn. Ví dụ:

// Viết hàm bằng Arrow Function
let sum = (a, b) => a + b;

console.log(sum(1, 2));

Sử dụng Map và Filter để xử lý mảng

Bạn có thể sử dụng Map và Filter để xử lý mảng một cách dễ dàng và ngắn gọn. Ví dụ:

let numbers = [1, 2, 3, 4, 5];

// Sử dụng Map để tạo mảng mới từ mảng cũ
let doubledNumbers = numbers.map((num) => num * 2);

console.log(doubledNumbers); // [2, 4, 6, 8, 10]

// Sử dụng Filter để lọc mảng
let evenNumbers = numbers.filter((num) => num % 2 === 0);

console.log(evenNumbers); // [2, 4]

Sử dụng Promise để xử lý các hoạt động bất đồng bộ

Bạn có thể sử dụng Promise để xử lý các hoạt động bất đồng bộ trong JavaScript một cách dễ dàng. Ví dụ:

function getData() {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve("Data loaded successfully!");
    }, 2000);
  });
}

getData().then((data) => {
  console.log(data); // Data loaded successfully!
});

Sử dụng Async/Await để viết mã bất đồng bộ dễ đọc hơn

Bạn có thể sử dụng Async/Await để viết mã bất đồng bộ một cách dễ đọc hơn. Ví dụ:

function getData() {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve("Data loaded successfully!");
    }, 2000);
  });
}

async function loadData() {
  let data = await getData();
  console.log(data); // Data loaded successfully!
}

loadData();

Sử dụng try/catch để xử lý lỗi

Bạn có thể sử dụng try/catch để xử lý các lỗi trong JavaScript một cách dễ dàng. Ví dụ:

function divide(a, b) {
  try {
    if (b === 0) {
      throw "Divide by zero error!";
    }

    return a / b;
  } catch (error) {
    console.log(error);
  }
}

console.log(divide(10, 0)); // Divide by zero error!

Sử dụng Debugger để gỡ lỗi mã JavaScript

Bạn có thể sử dụng Debugger để gỡ lỗi mã JavaScript một cách dễ dàng. Ví dụ:

function sum(a, b) {
  debugger;
  return a + b;
}

console.log(sum(1, 2)); // Mở Developer Console để xem lỗi

Khi chạy đoạn mã này, trình duyệt sẽ dừng lại tại từ khóa debugger và bạn có thể sử dụng Developer Console để xem giá trị của biến và xác định lỗi của đoạn mã.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *