15 code JavaScript thường được sử dụng với deverloper javascript

Bài này đơn giản chỉ là giới thiệu cho các devjs về những dòng code thường xuyên sử dụng với developer javascript. Nó đang giúp tôi rất nhiều, và hy vọng bạn cũng vậy.
Và còn nhiều bài tương tự về "Tips and Tricks Javascript" các bạn có thể đọc tại đây.

"Tips and Tricks Javascript"

1 - Convert Boolean

Để chuyển một var thành giá trị Boolean mà không thay đổi giá trị của nó:

const myBoolean = !! myVariable;
!!null // false
!!undefined // false
!!false // false
!!ture // ture
!!"" // false
!!"string" // true
!!0 // false
!!1 // true
!!{} // true
!![] // true

2 - Convert Number to String và ngược lại

Để chuyển đổi một phần tử Number thành một phần tử String:

const stringArray = numberArray.map(String);
const stringArray = [1, 2, 3].map(String);
["1", "2", "3"]

String to Number

const numberArray = stringArray.map(Number);
const stringArray = ["1", "2", "3"].map(String);
// [1, 2, 3]

3 - Format JSON

Nếu bạn nào làm backend thì việc format console.log() thì sử dụng format này là quá hiệu quả.

const formatted = JSON.stringify(myObj, null, 4);

const formatted = JSON.stringify({name: 'Anonystick', age: 18, address: 'sz'}, null, 4);
/*
{
    "name": "Anonystick",
    "age": 18,
    "address": "sz"
}
*/

4 - Query string parameters in JavaScript

const objectToQueryString = (obj) => Object.keys(obj).map((key) => `${encodeURIComponent(key)}=${encodeURIComponent(obj[key])}`).join('&');
objectToQueryString({name: 'Anonystick', age: 18, address: 'VietNam'})

Output
// name=Anonystick&age=18&address=VietNam

5 - Lấy elements chung của 2 arrays.

const similarity = (arr, values) => arr.filter(v => values.includes(v));
similarity([1, 2, 3], [1, 2, 4]); // [1,2]

6 - Check loại thiết bị với javascript.

const detectDeviceType = () =>/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|OperaMini/i.test(navigator.userAgent) ? 'Mobile' : 'Desktop';

7 - Chuyển đổi số thập phân

const toDecimalMark = num => num.toLocaleString('en-US');
toDecimalMark(12305030388.9087); // "12,305,030,388.909"

8 - Mảng đa chiều thành mảng một chiều

const deepFlatten = arr => [].concat(...arr.map(v => (Array.isArray(v) ? deepFlatten(v) : v)));
deepFlatten([1, [2], [[3], 4], 5]); // [1,2,3,4,5]

9 - Chuyển đổi String với chữ Hoa đầu tiên với nhiều định dạng.

const fromCamelCase = (str, separator = '_') =>str.replace(/([a-z\d])([A-Z])/g, '$1' + separator + '$2').replace(/([A-Z]+)([A-Z][a-z\d]+)/g, '$1' + separator + '$2').toLowerCase();

console.log(fromCamelCase('blogJavascriptAnonystick', ' ')); // 'blog javascript anonysticke'
console.log(fromCamelCase('blogJavascriptAnonystick', '-')); // 'blog-javascript-anonystick'
console.log(fromCamelCase('blogJavascriptAnonystick', '_')); // 'blog_javascript_anonystick'

10 - Check một address tuyệt đối

const isAbsoluteURL = str => /^[a-z][a-z0-9+.-]*:/.test(str);

isAbsoluteURL('https://google.com'); // true
isAbsoluteURL('ftp://www.myserver.net'); // true
isAbsoluteURL('/foo/bar'); // false

11 - So sách khoảng cách giữa hai ngày.

const getDaysDiffBetweenDates = (dateInitial, dateFinal) => (dateFinal - dateInitial) / (1000 * 3600 * 24);
getDaysDiffBetweenDates(new Date('2017-12-13'), new Date('2017-12-22')); // 9

12 - Copy mảng, check duplicate

const deDupe = (myArray) => [... new Set(myArray)];
deDupe([1, 1, 2, 1, 3, 3, 4])
// [1, 2, 3, 4]

13 - Check falsy values

const clean = dirty.filter(Boolean);
const clean = [0, false, true, undefined, null, '', 12, 15].filter(Boolean);
// [true, 12, 15]

14 - Unique elements in objects

const uniqueElementsBy = (arr, fn) =>arr.reduce((acc, v) => {if (!acc.some(x => fn(v, x))) acc.push(v);return acc;}, []);

uniqueElementsBy([{id: 1, name: 'Jhon'}, {id: 2, name: 'sss'}, {id: 1, name: 'Jhon'}], (a, b) => a.id == b.id)
// [{id: 1, name: 'Jhon'}, {id: 2, name: 'sss'}]

15 - Tạo mã màu RBG

const RGBToHex = (r, g, b) => ((r << 16) + (g << 8) + b).toString(16).padStart(6, '0');

RGBToHex(255, 165, 1); // 'ffa501'

Tài liệu tham khảo:

30-seconds


Đọc xong thì cố gắng copy/paste về máy mình mà có dịp thì xài nghe không mấy chế. Còn ai có những bí kíp gì show ra cho anh em học hỏi nha. Biết mà không share là một tội đồ công nghệ đó hêy.

Happy coding!