中文原地址 1.對所有的引用使用 const 而非 var。這能確保你無法對引用重覆賦值。 當需要變動引用時,使用let。 const和let都是塊級作用域。 2.創建對象的方式: const item = {}; 使用對象屬性的簡寫,且為簡寫的屬性分組。 3.創建數組的方式: const arr ...
中文原地址
1.對所有的引用使用 const 而非 var。這能確保你無法對引用重覆賦值。
當需要變動引用時,使用let。
const和let都是塊級作用域。
2.創建對象的方式:
const item = {};
使用對象屬性的簡寫,且為簡寫的屬性分組。
3.創建數組的方式:
const arr = [ ];
使用arr.push()去替代直接賦值。
使用拓展運算符去賦值數組: arrCopy = [...arr];
使用Array.from()把一個類數組對象轉換成數組:
const foo = document.querySelectorAll('.foo');
const nodes = Aarry.from(foo);
4.解構:
使用解構存取和使用多屬性對象:
function getFullName({ firstName, lastName }) { return `${firstName} ${lastName}`; }
對數組也使用解構賦值:
const arr = [1, 2, 3, 4]; const [first, second] = arr; // 等同於first = arr[0],second = arr[1]
返回多個值時使用對象解構:這樣不用在意屬性的順序
function returnInput (input) { ... return { left, right, top, bottom }; } const { left, right } = processInput(input);
5.Strings
程式化生成字元串時,使用模板字元串代替字元串鏈接
function sayHi(name) { return `How are you, ${name}?`; }
6.函數
使用函數聲明代替函數表達式
function foo() { }
立即調用的函數表達式:
(()=> { console.log('Welcome to the Internet. Please follow me.'); })();
永遠不要在非函數代碼塊(if,while)中聲明一個函數,把那個函數賦給一個變數。
let test; if (current) { test = () => { ... }; }
不要使用arguments,可以選擇rest語法...替代。rest是一個真正的數組,且能明確你要傳入的參數
function cont(...args) { return args.join(''); }
直接給函數的參數指定預設值,不要使用一個變化的函數參數
function fn(opts = {}) {...}
7.構造器
總是使用class,避免直接操作prototype。
使用extends繼承。
方法可以返回this來幫助鏈式調用。
未完