20 Kỹ thuật Tốc ký trong JavaScript để tiết kiệm thời gian của bạn (phần 2)
Tiếp nối phần 1, Bachkhoa-Aptech sẽ giới thiệu cho bạn 10 kỹ thuật tốc ký còn lại.
11. Chuyển nhượng tài sản đối tượng
Nếu tên biến và tên khóa đối tượng giống nhau thì chúng ta chỉ có thể đề cập đến tên biến trong các ký tự đối tượng thay vì cả khóa và giá trị. JavaScript sẽ tự động đặt khóa giống như tên biến và gán giá trị dưới dạng giá trị biến.
let firstname = 'Amitav';
let lastname = 'Mishra';
// Longhand
let obj = {firstname: firstname, lastname: lastname};
// Viết tắt let obj = {firstname, lastname};
12. Chuỗi thành một số
Có sẵn các phương thức như parseIntvà parseFloatcó sẵn để chuyển đổi một chuỗi thành số. Chúng ta cũng có thể làm điều này bằng cách chỉ cần cung cấp toán tử một ngôi (+) trước giá trị chuỗi.
// Longhand
let total = parseInt ('453');
let average = parseFloat ('42 .6 ');
// Viết tắt
let total = + '453'; cho trung bình = + '42 .6 ';
.jpg)
13. Lặp lại một chuỗi nhiều lần
Để lặp lại một chuỗi trong một số thời gian nhất định, bạn có thể sử dụng một forvòng lặp. Nhưng sử dụng repeat()phương pháp này, chúng ta có thể làm điều đó trong một dòng duy nhất.
// Longhand
let str = ''; for (let i = 0; i <5; i ++) {
str + = 'Xin chào'; }
console.log (str); // Chào chào chào chào chào
// Viết tắt
'Xin chào' .repeat (5);
Tips: Bạn muốn xin lỗi ai đó bằng cách gửi 100 lần "xin lỗi"? Hãy thử nó với repeat()phương pháp. Nếu bạn muốn lặp lại từng chuỗi trong một dòng mới, thì hãy thêm \nvào chuỗi.
'xin lỗi \ n'.repeat (100);
14. Lũy thừa
Chúng ta có thể sử dụng Math.pow() để tìm lũy thừa của một số. Có một cú pháp ngắn hơn để làm điều đó với double asterik (**).
// Longhand
const power = Math.pow (4, 3); // 64
// Viết tắt const power = 4 ** 3; // 64

15. Toán tử kép NOT bitwise (~~)
Toán tử kép NOT bitwise là một thay thế cho Math.floor().
// Longhand
const floor = Math.floor (6.8); // 6
// Viết tắt
const floor = ~~ 6.8; // 6
Note: Phương pháp toán tử kép NOT bitwise chỉ hoạt động với số nguyên 32 bit, tức là (2 ** 31) -1 = 2147483647. Vì vậy, đối với bất kỳ số nào cao hơn 2147483647, toán tử bitwise (~~) sẽ cho kết quả sai, vì vậy khuyến khích sử dụng Math.floor() trong trường hợp như vậy.
16. Tìm số lớn nhất và số nhỏ nhất trong mảng
Chúng ta có thể sử dụng vòng lặp for để lặp qua từng giá trị của mảng và tìm giá trị max hoặc min. Chúng ta cũng có thể sử dụng phương thức Array.reduce () để tìm số max và min trong mảng. Nhưng sử dụng toán tử spread, chúng ta có thể thực hiện nó trong một dòng duy nhất.
// Viết tắt
const arr = [2, 8, 15, 4];
Math.max (... arr); // 15
Math.min (... arr); // 2

17. Vòng lặp for
Để lặp qua một mảng, chúng ta thường sử dụng for truyền thống. Chúng ta có thể sử dụng for...of để lặp qua các mảng. Để truy cập chỉ mục của mỗi giá trị, chúng ta có thể sử dụng for...in.
cho arr = [10, 20, 30, 40];
// Longhand
for (let i = 0; i <arr.length; i ++) {
console.log (arr [i]); }
// Viết tắt
// for of loop
for (const val of arr) {
console.log (val); }
// vòng lặp
for in for (const index in arr) {
console.log (`index: $ {index} và value: $ {arr [index]}`); }
Chúng ta cũng có thể lặp qua các thuộc tính của đối tượng bằng cách sử dụng for...in.
let obj = {x: 20, y: 50};
for (khóa const trong obj) {
console.log (obj [key]); }
18. Hợp nhất các mảng
cho arr1 = [20, 30];
// Longhand let arr2 = arr1.concat ([60, 80]);
// [20, 30, 60, 80] /
/ Viết tắt let arr2 = [... arr1, 60, 80]; // [20, 30, 60, 80]

19. Nhân bản sâu đối tượng đa cấp
Để sao chép sâu một đối tượng nhiều cấp, chúng ta có thể lặp qua từng thuộc tính và kiểm tra xem thuộc tính hiện tại có chứa một đối tượng hay không. Nếu có, sau đó thực hiện một cuộc gọi đệ quy đến cùng một hàm bằng cách chuyển giá trị thuộc tính hiện tại (tức là đối tượng lồng nhau).
Chúng tôi cũng có thể làm điều đó bằng cách sử dụng JSON.stringify()và JSON.parse() nếu đối tượng của chúng tôi không chứa các hàm, không xác định, NaN hoặc Ngày dưới dạng giá trị. Nếu chúng ta có đối tượng mức đơn, tức là không có đối tượng lồng nhau nào, thì chúng ta cũng có thể nhân bản sâu bằng toán tử spread.
let obj = {x: 20, y: {z: 30}};
// Longhand const makeDeepClone = (obj) => {
let newObject = {};
Object.keys (obj) .map (key => {
if (typeof obj [key] === 'object') {
newObject [key] = makeDeepClone (obj [key]);
} else {
newObject [key] = obj [phím]; } });
trả về newObject;
}
const cloneObj = makeDeepClone (obj);
// Viết tắt
const cloneObj = JSON.parse (JSON.stringify (obj));
// Viết tắt cho đối tượng cấp đơn
let obj = {x: 20, y: 'hello'}; const cloneObj = {... obj};
Note: Hãy sử dụng JSON.parse(JSON.stringify(obj)) khi đối tượng của bạn chỉ chứa chuỗi và số.
20. Lấy ký tự từ chuỗi
let str = 'jscurious.com';
// Longhand str.charAt (2); // c
// Viết tắt str [2]; // c
Một số kỹ thuật tốc ký này có vẻ không phù hợp để sử dụng trong nhiều project nhưng không tồi nếu bạn biết thêm một số kỹ thuật bổ sung.
Bachkhoa-Aptech - Tự hào 19 năm Kiến tạo IT chất lượng cao
Chương trình IT Leader 4.0: http://laptrinhvien.bachkhoa-aptech.edu.vn/clc
Hotline: 0968 27 6996
#BachkhoaAptech #Làmtrướchọcsau #19nămKiếntạoIT