59

ES6 的 var 和 let

在這個 tip,我將介紹 var 和 let 他們之間不同的作用域。我應該使用 let 替代 var 嗎?讓我們來看一下吧!

56

複製到剪貼版

本週我建立了一個常見的「複製到剪貼版」按鈕,我以前不曾做過這樣的功能,我想分享我如何實作它。

44

了解傳送機制

JavaScript 技術上只傳送原始和物件類型的值(或參考)。在參考的類型下,參考值本身是 passed by value。

35

賦值運算子

賦值是相當常見的。有時候我們這些「懶惰的開發者」覺得打字是很耗時的。所以我們使用一些技巧來幫助我們讓程式碼更乾淨簡單。

31

避免修改或傳送 arguments 到其他函式 - 它會影響優化

在 JavaScript 的函式,變數名稱 arguments 讓你可以存取所有傳送到函式的參數。arguments 是一個 類陣列物件arguments 可以使用陣列表示來存取,而且它有 length 屬性,但不具備陣列的 filtermap 以及 forEach 的方法。以下程式碼是轉換 arguments 到陣列相當普遍的做法。

29

使用 memoization 加速遞迴

大家對費式(Fibonacci)數列都很熟悉。我們可以在 20 秒內寫出以下的函式。它可以執行,但是效率不高。它做了大量的重複計算,我們可以快取先前的計算結果來加快計算速度。

27

JavaScript 中的捷徑計算

捷徑計算意思是說,假設第一個參數不足以確定表達式的值,第二個參數才會被執行,當 AND 函數的第一個參數計算結果為 false,則所有結果則為 false;當 OR 函數的第一個參數計算結果為 true,則所有結果為 true。

25

使用立即函式表達式

稱作「Iffy」(IIFE - immediately invoked function expression)是一個匿名函式表達式,而且可以立即被調用,在 JavaScript 中有一些相當重要的用途。

24

使用 === 來替代 ==

==(或 !=)運算子如果在執行上需要的話,會自動將類型轉換。 ===(或 !==)運算子則不會執行轉換。===(或 !==)用來比較數值和類型,相較於 == 更來的快速。

19

安全的使用字串串接

假設你有一些不確定的變數類型,而你想將它們串接成字串。可以確定的是,算術運算不是應用在串接的地方,使用 concat 來串接。

17

Node.js - 執行尚未被 required 的模組

在 nodejs,你可以讓你的程式取決於 require('./something.js')node something.js 這兩種不同的方式來執行你的程式碼。如果你想要將你的獨立模組交互使用是非常有用的。

14

箭頭函式

介紹一個 ES6 的新特性 - 箭頭函式是一個方便的語法讓你用更少的程式碼做更多事。

09

模板字串

由於 ES6 中有了模板字串,JavaScript 可以使用模板字串來替代原本我們使用的引號字元。

4

將帶有音節字元的字串進行排序

JavaScript 原生的 sort 方法讓我們可以排序陣列。做一個簡單的 array.sort(), 將每一個陣列元素視為字串並依字母排序。但是當你嘗試排序一個非 ASCII 字元陣列時,你會得到一個奇怪的結果。

2

在子元件 Keys 是很重要的

你可以從陣列動態建立 key 屬性並傳送到所有的元件(component)。它是一個唯一以及固定的 id,React 用來識別 DOM 裡面的每個元件,並區別它是否為同一個元件。使用 keys 可以確保子元件被保護而不會被重覆建立,也可以防止奇怪的事件發生。

0

在陣列中加入元素

在一個存在的陣列加入新的元素是一件很常見的事情,你可以使用 push 將元素加入到陣列的末端,或是使用 unshift 在陣列起始位置加入元素,也可以使用 splice 在陣列中間的地方加入元素。