iT邦幫忙

鐵人檔案

2023 iThome 鐵人賽
回列表
自我挑戰組

那些必須了解的 JavaScript 特性與寫程式前的思考 系列

曾經有位前輩給予過我需要先把一門程式語言的特性了解清楚再去碰框架,
以及寫程式是最後一件事,我沒有好好當一回事,
直到每次寫出來的程式功能一堆 Bug 被主管拉去重複做一些切版任務與被開除後才驚覺沒有清楚理解一門程式語言的特性以及想清楚目標與設計好流程後再寫程式時,得到不理想的結果也是必然發生的事.

參賽天數 17 天 | 共 17 篇文章 | 0 人訂閱 訂閱系列文 RSS系列文
DAY 1

系列文開始

這次決定把 JavaScript 的特性給弄清楚,也是為了讓自己在寫程式時能夠更有信心的知道自己為什麼這樣寫,還有當程式出現問題時該如何除錯,避免改 A 壞 B...

2023-09-11 ‧ 由 JimmyHuang369 分享
DAY 2

執行脈絡(Execution context)與執行堆疊(Execution stack)

電腦無法直接讀懂 JavaScript 撰寫好的 JavaScript 的程式碼無法被電腦直接讀懂,需要透過像是 Google 的 V8 引擎來將我們寫的 Ja...

2023-09-12 ‧ 由 JimmyHuang369 分享
DAY 3

Hoisting

一般我們會先宣告完函數後才呼叫函數,也會在宣告完變數與賦值後才透過 console.log 來查看變數內容, 也就是像以下這段程式碼: var text = &...

2023-09-13 ‧ 由 JimmyHuang369 分享
DAY 4

Scope Chain

變數環境 變數環境用來描述由你創造的變數撰寫的位置,還有在記憶體中與其他變數的關係, 當執行以下程式碼: function b() { var myVar;...

2023-09-14 ‧ 由 JimmyHuang369 分享
DAY 5

強制轉型

運算子 如果要進行四則運算可以透過運算子來進行: var a = 1 + 2; 但其實運算子也算是一種 JavaScript 語言中內建的 function...

2023-09-15 ‧ 由 JimmyHuang369 分享
DAY 6

first class function

First class function 在 javascript 中, 可以對 function 做基本型別(純值)與物件能做的事,像是把 function...

2023-09-16 ‧ 由 JimmyHuang369 分享
DAY 7

傳值(by value)與傳參考(by reference)

傳值(by value) 當將變數 a 透過 = 運算子設置為基本型別(純值)後,再把 a 透過 = 運算子賦值給 b: var a = 3; var b;...

2023-09-17 ‧ 由 JimmyHuang369 分享
DAY 8

What's this?

This 之前提到過在 JavaScript 引擎創造全域執行脈絡時,在創造階段除了創造全域物件(window)也會創造變數 this ,this 在瀏覽器的全...

2023-09-18 ‧ 由 JimmyHuang369 分享
DAY 9

立即執行函數 IIFE

之前透過有過將匿名函數附值給變數: var greetFunc = function(name) { console.log("hi~"...

2023-09-19 ‧ 由 JimmyHuang369 分享
DAY 10

閉包

閉包 (Closures) 之前我們已經知道了執行脈絡與執行堆疊,這兩個觀念都對理解閉包起了很大的幫助, 先來看一段利用到閉包的程式碼: function gr...

2023-09-20 ‧ 由 JimmyHuang369 分享