Serials Javascript Style Guide – Comments

Comments Multiline Sử dụng /** … */ khi comment nhiều dòng. // bad // make() returns a new element // based on the passed in tag name // // @param {String} tag // @return {Element} element function make(tag) { // … return element; } // good /** * make() returns a new element * based…

Serials Javascript Style Guide – Control Statements

Control Statements Statements Trong trường hợp các lệnh điều khiển (if, while etc.) quá dài hoặc vượt quá độ dài tối đa cho phép, thì mỗi điều kiện (đã được nhóm lại) có thể đặt vào 1 dòng mới. Các toán tử logic nên đặt ở đầu dòng. Tại sao ư? Việc đặt các toán…

Serials Javascript Style Guide – Blocks

Blocks 16.1 Braces Luôn sử dụng dấu ngoặc nhọn {} với khối có nhiều dòng. eslint: nonblock-statement-body-position // bad if (test) return false; // good if (test) return false; // good if (test) { return false; } // bad function foo() { return false; } // good function bar() { return false; } 16.2 Cuddled…

Serials Javascript Style Guide – Hoisting

Hoisting 14.1 About Khái báo var được đưa lên đầu phạm vi hàm gần nhất, còn các phép gán thì không. Các khai báo const và let được biết đến với nội dung Temporal Dead Zones (TDZ). Nó quan trọng để biết rằng typeof không an toàn. // we know this wouldn’t work (assuming there…

Serials Javascript Style Guide – Variables

Serials Javascript Style Guide – Variables Variables 13.1 Const Luôn sử dụng const hoặc let để khai báo biến. Nếu không biến khai báo sẽ là toàn cục. eslint: no-undef prefer-const // bad superPower = new SuperPower(); //global variable // good const superPower = new SuperPower(); 13.2 One const Chỉ sử dụng 1 const hoặc…

Serials Javascript Style Guide – Properties

Properties 12.1 Dot Luôn sử dụng kí hiệu dấu chấm . để truy xuất các thuộc tính. eslint: dot-notation const luke = { jedi: true, age: 28, }; // bad const isJedi = luke['jedi']; // good const isJedi = luke.jedi; 12.2 Bracket Sử dụng kí hiệu dấu ngoặc vuông [] khi truy xuất thuộc tính…

Serials Javascript Style Guide – Iterators and Generators

Iterators and Generators 11.1 Nope Không sử dụng các vòng lặp. Khuyến khích sử dụng các higher-order functions thay vì các vòng lặp như for-in or for-of. eslint: no-iterator no-restricted-syntax Tại sao ư? Hãy hiểu đây là quy tắc bất di bất dịch. Vì việc hàm thuần túy trả về giá trị luôn dễ hơn…

Serials Javascript Style Guide – Modules

Modules 10.1 Use them Luôn sử dụng module (import/export). Tại sao ư? Modules là tương lại vì vậy hãy bắt đầu sử dụng ngay bây giờ. // bad const AirbnbStyleGuide = require('./AirbnbStyleGuide'); module.exports = AirbnbStyleGuide.es6; // ok import AirbnbStyleGuide from './AirbnbStyleGuide'; export default AirbnbStyleGuide.es6; // best import { es6 } from './AirbnbStyleGuide'; export default es6;…

Serials Javascript Style Guide – Classes & Constructors

Classes & Constructors 9.1 Use class Luôn sử dụng class. Tránh thao tác trực tiếp prototype. Tại sao ư? class ngắn gọn và dễ hiểu hơn. // bad function Queue(contents = []) { this.queue = […contents]; } Queue.prototype.pop = function () { const value = this.queue[0]; this.queue.splice(0, 1); return value; }; // good class Queue…