- vừa được xem lúc

Một số Tips JavaScript hay ( Phần tiếp )

0 0 17

Người đăng: Phan Văn Nhân

Theo Viblo Asia

Return objects to enable chaining of functions

Khi tạo các hàm trên một đối tượng trong Javascript hướng đối tượng, việc trả về đối tượng trong hàm sẽ cho phép bạn xâu chuỗi các hàm lại với nhau. Vậy code sẽ trông như thế nào.

function Person(name, age) { this.name = name; this.age = age; this.sayHello = function() { console.log(`Hello my name is ${this.name} - ${this.age} years old.`); return this; }; this.grow = function() { this.age++; return this; };
} const nhan = new Person("Nhan", 23);
nhan.sayHello().grow().sayHello(); // Hello my name is Nhan - 23 years old.
// Hello my name is Nhan - 24 years old.

Breaking or continuing loop in functional programming

Một yêu cầu phổ biến của lặp là hủy bỏ. Với vòng lặp for, chúng ta có thể break để kết thúc sớm quá trình lặp.

const arr = [4, 5, 0, 7, 8];
for (let i = 0; i < arr.length; i++) { if (arr[i] === 0) { break; // dừng vòng lặp } console.log(arr[i]);
} // 4
// 5

Vậy có cách nào dể code nhanh chóng và ngắn gọn hơn không, người anh em forEach thì sao nhỉ ?

  • Thử với forEach xem sao nhé
const arr = [4, 5, 0, 7, 8];
arr.forEach(function(val) { if (val === 0) { // Cách nào để dừng? return true; } console.log(val);
}); // 4
// 5
// 0
// 7
// 8

Rất tiếc là không thể break được với forEach

Vậy còn SomeEvery thì sao

Some là một Array prototype. Nó kiểm tra xem một số phần tử trong mảng có vượt qua những điều kiện được cung cấp từ hàm truyền vào hay không.

  • Thử với Some xem làm thế nào để break nhé
const arr = [4, 5, 0, 7, 8];
arr.some(val => { if (val === 0) { return true; } console.log(val);
}); // 4
// 5

Ngon lành rồi =)) Vậy với every ?

Every cũng giống như Some vậy nhưng ngược lại nó kiểm tra xem tất cả phần tử trong mảng đều đáp ứng được những điều kiện được cung cấp từ hàm truyền vào hay không.

  • Code với Every sẽ break như thế nào
const arr = [4, 5, 0, 7, 8];
arr.every(val => { if (val === 0) { return false; } console.log(val); return true;
}); // 4
// 5

Advanced Javascript Properties

Chúng ta có thể cấu hình các thuộc tính đối tượng trong Javascript, chẳng hạn để đặt các thuộc tính là private hoặc readonly, vậy sẽ code như thế nào ?

let nhan = {};
Object.defineProperty(nhan, 'cmnd', { value: 123456789, writable: false
}); nhan.cmnd = 111111111;
console.log(nhan.cmnd); // 123456789
  • Cú pháp:
Object.defineProperty(dest, propName, options)

Hoặc multiple definitions

Object.defineProperties(dest, { propA: optionsA, propB: optionsB, //...
})

Trong đó phổ biến nhất:

  • value: value là một thuộc tính bắt buộc.
{age: 23} === Object.defineProperty(obj, 'age', {value: 23})
  • writable: đặt thuộc tính là readonly === writeable: false ( Như ví dụ ở trên ). Lưu ý rằng nếu thuộc tính là một đối tượng lồng nhau ( nested objects ), thì các thuộc tính của nó vẫn có thể chỉnh sửa được
  • Ngoài ra còn các Options như: enumerable, configurable..vv.. các bạn có thể tìm hiểu thêm, trong bài này mình sẽ dừng lại ở đây thôi :v

Lời Kết

Trên đây là một số tips mà mình đã tìm hiểu và chọn lọc ra được, hy vọng có thể giúp ích cho các bạn. Nếu thấy thích thì Upvote, thấy hay thì Clip bài này của mình nhé! ^^ Cảm ơn bạn đã ghé thăm ?

Nguồn: JS_tips

Bình luận

Bài viết tương tự

- vừa được xem lúc

2021, chúng ta cần tối ưu hóa việc tải hình ảnh trên web như nào?

Rất chào các bạn,. Như các bạn đã biết, trong kỉ nguyên công nghệ, song song với sự sinh ra dày đặc của các trang web mới cũng là sự biến mất của những trang web "lạc hậu" hay hoạt động kém hiệu quả.

0 0 43

- vừa được xem lúc

Cách mình "hack" được vào hẹ thống của SMAS để xem điểm.

Cách mà mình "hack" được vào hệ thống của SMAS. Thật ra dùng từ hack cũng không đúng lắm, chỉ là một vài trick để lừa hệ thống mà thôi.

0 0 124

- vừa được xem lúc

Giải thích một số JAVASCRIPT ARRAY METHOD với EMOJIS

Như chúng ta đã biết, Array trong JS có rất nhiều method tiện dụng có thể hỗ trợ chúng ta. Sau đây là một số method thông dụng được giải thích bằng các emoji. Thêm một hoặc nhiều phần tử vào sau mảng. livestock.

0 0 33

- vừa được xem lúc

Testing trong Javascript với Jest (Phần 1)

Hello 500 anh em, lại là mình đây. Chú bé coder yêu màu tím thích màu hồng và ghét sự giả dối đây .

0 0 249

- vừa được xem lúc

Áp dụng kiến trúc 3 Layer Architecture vào project NodeJS

The problem encountered. Các framework nodejs phổ biết như Express cho phép chúng ta dễ dàng tạo ra Resful API xử lí các request từ phía client một cách nhanh chóng và linh hoạt.

0 0 64

- vừa được xem lúc

Một số String methods cần biết trong javascript

String là một trong những phần quan trọng nhất trong javascript, ngoài những methods hay dùng như trim, concat, subString, toUpperCase, toLowerCase; Javascript còn cung cấp cho chúng ta rất nhiều methods hữu ích khác để thao tác và giải quyết các vấn đề dễ dàng hơn khi làm việc với String. Mặc dù nh

0 0 25