JavaScript 傳值與傳址,都幾咧?
在程式語言中最基本的問題就是問題就是如何紀錄與操縱資料,牽扯到傳值與傳址的問題,這篇教學使用 JavaScript 搭配圖表幫助你了解它們的差異。了解如何儲存變數有助於更好的操控資料,避免出現改 A 卻動到 B 的狀況。
在程式語言中最基本的問題就是問題就是如何紀錄與操縱資料,牽扯到傳值與傳址的問題,這篇教學使用 JavaScript 搭配圖表幫助你了解它們的差異。了解如何儲存變數有助於更好的操控資料,避免出現改 A 卻動到 B 的狀況。
寫程式久了會發現撰寫乾淨可被維護的程式是一件相當困難的事情,其中一個造成難維護的原因是因為「函式除了運算並回傳結果之外過程中產生變化影響到其餘的程式」,換句話說問題就是「不必要的副作用,讓程式變得捉摸不定難以理解」,因此應該了解純粹函式的定義以及如何使用,為了更進一步撰寫撰寫乾淨的代碼。
本篇文章將透過簡單易懂的辭彙介紹 JavaScript 中的 this,讓讀者能夠更深入理解 JavaScript 中 this 的使用方式與特性。`this` 會如此讓人混亂是因為它需要基於前後文來判斷,最簡單的原則就是:誰呼叫 `this`,`this` 就代表誰。
特別記錄下來,這是 React Hook Form 中非常相近的方法:watch 與 useWatch 的差異比較與說明,就連我在第一次理解他們的時候也被搞混了,這裡製作了一些可以互動的實際範例讓你馬上體會到它們之間的差異。
JavaScript arrow functions are a new syntax introduced in ES6. In this article, we will learn how to use arrow functions.
JavaScript 箭头函式是 ES6 版本中新增的语法,能够简洁明了地定义函式,并且已经被广泛的使用当中。于本篇文章中我们将会学习如何使用箭头函式来简化程式码,并且了解这个语法的特性以及要注意的地方,以及它可以被使用在那些场合当中。
JavaScript 箭頭函式是 ES6 版本中新增的語法,能夠簡潔明瞭地定義函式,並且已經被廣泛的使用當中。於本篇文章中我們將會學習如何使用箭頭函式來簡化程式碼,並且了解這個語法的特性以及要注意的地方,以及它可以被使用在那些場合當中。
React useRef 與一般定義變數差在哪?我決定把他們詳細的比較寫在這篇文章中。簡單來說 useRef 是一個 React Hook 可以讓你參考一個值並不會受到 React 的重新渲染影響,透過實際代碼操作範例來理解它與類似的 useState 還有一般變數的差異。
我相信撰寫程式並沒有絕對的準則,但絕對有些常見可以權衡留意的地方。這篇文章記錄著作為助教在檢閱不同人寫的代碼的時候,留意到的一些潛在的問題……本篇文章主要是經驗的濃縮,如果要詳細的撰寫建議可以參考看看無瑕的程式碼,會有更全面的說明與案例。
Most of the time, you won’t want to use "loose equality"; try using "strict equality" to write your code more rigorously and accurately
绝大多数时候你不会想要使用「松散比对」,尝试使用「严格的比对」将程序撰写得严谨精确一些。在绝大多数的情况下,你不会想要使用松散比对,但是在某些情况下,可能会使用它会更为便利,本篇文章将介绍相关取舍,以及你可以在什么时候使用不同的比较方式。
絕大多數時候你不會想要使用「鬆散比對」,嘗試使用「嚴謹的比對」將程式撰寫得嚴謹精確一些。在絕大多數的情況下,你不會想要使用鬆散比對,但是在某些情況下,可能會使用它會更為便利,本篇文章將介紹相關取捨,以及你可以在什麼時候使用不同的比較方式。
If you need more than 3 levels of nesting, you've messed up and should consider refactoring your code. Learn how to use guard clauses for better readability.
如果你需要大于 3 层的嵌套,代表你已经搞砸了,应当考虑重构程式码,应当透过反转与封装程式来重构逻辑。这篇文章将详细的介绍现有问题以及使用 Guard Clauses 技巧撰写更好阅读的代码,也就是透过反转逻辑的技巧来撰写更少嵌套逻辑的程式。
如果你需要大於 3 層的嵌套,代表你已經搞砸了,應當考慮重構程式碼,應當透過反轉與封裝程式來重構邏輯。這篇文章將詳細的介紹現有問題以及使用 Guard Clauses 技巧撰寫更好閱讀的代碼,也就是透過反轉邏輯的技巧來撰寫更少嵌套邏輯的程式。