一名軟體測試工程師(QA),從 0 開始的 JavaScript 學習之路。
做中學,學中做,找個有興趣的目標開始學習。
這將會是我的筆記,為了讓別人也看得懂,我會盡量寫成 0 基礎也能看懂。
目標是 30 天後做出一個能玩的回合制戰鬥小遊戲《勇者 vs 小怪》,並部署上線讓大家都能玩玩看。
一切盡力而為。
今天的主題:事件——按鈕點下去,遊戲才開始 Day 10 讓數字上了畫面,但那是「重新整理一次、自動打一拳」。今天要讓它等玩家決定什麼時候攻擊。 事件監聽的三個...
第一階段回顧:從 hello world 到能互動 十二天前我完全沒寫過 JavaScript。今天回頭看,已經有一個能按按鈕、會扣血、會宣布勝負的網頁了。這篇...
今天的主題:innerHTML 與 textContent——以及我第一次在自己的網頁上被攻擊 前面幾天改畫面文字我一直用 textContent。今天要學它的...
今天的主題:用 JS 改樣式——先回收昨天的伏筆 昨天為了讓「鞭屍!!」按鈕變紅,我用 innerHTML 生了一顆新按鈕塞進舊按鈕裡。當時就知道那是「能動但不...
今天的主題:表單與輸入——以及我在自己的程式裡找到一個真的漏洞 今天要讓玩家自己輸入勇者名字。這是遊戲第一次接受「外面來的資料」,而 Day 13 我才剛親手做...
今天的主題:亂數——讓每一拳都不一樣,然後測試就變難了 到昨天為止,我的勇者每次攻擊都造成固定 17 點傷害。打四下、小怪死掉,每一場都一模一樣。今天要加入亂數...
今天的主題:計時器——第一次寫出「不需要人操作也會發生」的程式 前面十六天,我寫的程式全都在等人。按下按鈕才攻擊、輸入名字才出征——沒人動它,它就安靜地躺著。今...
今天的主題:狀態管理——把散落的變數收進一個盒子 到昨天為止,我的遊戲有四個獨立的變數在記錄「現在的情況」: const hero = {...};...
今天的主題:非同步——「未來會有結果」的承諾 Day 17 我已經摸到門了:setTimeout 預約一件事,程式不會停下來等。那個「排到待辦清單最後面」的機制...
今天的主題:localStorage——讓資料「關掉再開還在」 到目前為止,只要重新整理頁面,一切歸零:名字沒了、回合數沒了。因為資料都在記憶體裡,關掉就消失。...