+11

Javascript - Tips & Tricks

1. Swap biến bằng cách sử dụng destructuring

Cách swap biến thông thường thì chắc hẳn ai cũng biết rồi. Hôm nay mình xin giới thiệu một phương pháp khác là sử dụng destructuring

let a, b;
a = 1;
b = 2;

// swap 2 bien a va b
[ a ,b ] = [ b ,a ];
console.log( a , b );  \\ 2 1

Như vậy là giá trị của biến a và biến b đã được đổi với nhau mà không cần phải tạo ra một biến tạm. Ngoài ra còn có một mẹo khác, tuy nhiên đoạn code của bạn sẽ rất khó hiểu

a = a + b;
b = a - b;
a = a - b;

2. Convert String thành Number

Giả sử ban đầu chúng ta có một biến string với value là '8888'

let string = '8888';

Cách phố biến và nhiều người sài nhất :

// Cach pho bien nhat
let method1 = Number(string);
console.log(method1);  \\ 8888

Ngoài ra, bạn cũng có thể dùng mẹo này để convert một cách nhanh chóng:

// Cach thu 2
let method2 = +string;
console.log(method2); \\ 8888

3. Xoá các phần tử trùng lặp trong 1 array

const numbers = [1 , 1 , 2 , 3];

const uniqueNumbers = [ ...new Set(numbers)];

console.log(uniqueNumbers); //   [1 , 2 , 3]

4. Tối ưu hiệu năng khi dùng toán tử spread operator

Chắc hẳn ai dùng js đều biết cách dùng lệnh này, nhưng rất ít người dùng đúng để tối ưu hiệu năng của nó. Ví dụ một lệnh đơn giản bên dưới:

let arr3 = [1, 2 , ...arr1, ...arr2]

Tuy nhiên cách dùng này là sai, như này đoạn code của bạn chạy rất chậm chạp. Bạn nên để tất cả spread-operations lên đầu mảng, nó sẽ giúp đoạn code của bạn chạy nhanh hơn từ 50-60 %.

let arr3 = [...arr1, ...arr2, 1, 2] // cách dùng đúng

5. Convert mọi giá trị thành boolean

console.log(!!"abcdef"); // true
console.log(!!1); // true
console.log(!!0); // false
console.log(!!undefined); // false

6. Tổng kết

Bên trên à những tips & trick mà mình đã tìm hiểu được trong quá trình học và làm việc với ngôn ngữ javascript, nếu bài viết có gì sai sót hoặc bạn muốn bổ sung thêm các tips & trick khác thì hãy comment bên dưới. Nguồn tham khảo mục 4 : https://v8.dev/blog/spread-elements


All Rights Reserved

Viblo
Let's register a Viblo Account to get more interesting posts.