JavaScript 重修就好
胡立(Huli) 著
- 出版商: 深智
- 出版日期: 2025-07-19
- 定價: $760
- 售價: 7.9 折 $600
- 語言: 繁體中文
- 頁數: 464
- ISBN: 6267757048
- ISBN-13: 9786267757048
-
相關分類:
JavaScript
銷售排行:
🥇 2025/8 繁體中文書 銷售排行 第 1 名
🥇 2025/7 繁體中文書 銷售排行 第 1 名
立即出貨 (庫存 > 10)
買這商品的人也買了...
-
內行人才知道的系統設計面試指南$580$458 -
持續 API 管理|在不斷演變的生態系統中做出正確決策, 2/e (Continuous API Management: Making the Right Decisions in an Evolving Landscape, 2/e)$580$458 -
OAuth 2.0 從入門到實戰:利用驗證和授權守護 API 的安全$600$468 -
Vue.js 3 前端開發不踩雷:Composition API × Vue Router × Pinia,帶你快速升級進階開發者!(iThome鐵人賽系列書)【軟精裝】$650$507 -
React 思維進化:一次打破常見的觀念誤解,躍升專業前端開發者(iThome鐵人賽系列書)【平裝】$750$638 -
現代系統管理|可靠及永續的系統管理 (Modern System Administration: Managing Reliable and Sustainable Systems)$680$537 -
前端測試指南:策略與實踐$650$507 -
Beyond XSS:探索網頁前端資安宇宙$880$695 -
Vue 開發者升級指南 -- Nuxt3 入門:打造 SSR 專案$980$774 -
讓 AI 好好說話!從頭打造 LLM (大型語言模型) 實戰秘笈$680$537 -
軟體工程師的英語使用守則:English for Developers$420$357 -
GitHub Copilot 讓你寫程式快 10 倍!AI 程式開發大解放$690$545 -
生成式 AI x RAG x Hugging Face 提示工程打造數據採樣神技$980$774 -
工程師下班有約:企業內訓講師帶你認清職涯真相!$600$468 -
軟體測試修練指南:我獨自升級的實戰心法(iThome鐵人賽系列書)$690$538 -
不想上班的勇氣:軟體工作者的第一本接案指南$650$507 -
軟體品質全面思維:從產品設計、開發到交付,跨越 DevOps、安全與 AI 的實踐指南$650$507 -
我輩程式人:回顧從 Ada 到 AI 這條程式路,程式人如何改變世界的歷史與未來展望 (We, Programmers: A Chronicle of Coders from Ada to AI)$850$663 -
網路可程式性與自動化 |新世代網路工程師必備技能, 2/e (Network Programmability and Automation: Skills for the Next-Generation Network Engineer, 2/e)$1,380$1,090 -
軟體工程師的晉升之路|全方位升遷攻略,揭示工程師職涯成長的核心策略!$700$553 -
AI 工程|從基礎模型建構應用 (AI Engineering : Building Applications with Foundation Models)$1,200$948 -
Docker 建置與執行, 3/e (Docker: Up & Running: Shipping Reliable Containers in Production, 3/e)$880$695 -
Vibe Coding - Cursor 教戰手冊$880$695 -
白話 Web 應用程式安全:洞悉駭客手法與防禦攻略 (Grokking Web Application Security)$580$458 -
從試算表到資料平台:重構資料工程的技術與團隊$680$537
商品描述
這不是一本給初學者的JavaScript教科書。相反地,它是寫給那些已經學過JavaScript卻依然感到卡關,對某些觀念依然模糊的開發者。
就像大學課程一樣,或許都是死背答案,考試時題目一變就被當掉了。這時該怎麼辦呢?重修就好。
那為什麼要再學一次呢?因為我相信許多人第一次都沒有真的把這些觀念學進去,只是為了應付面試而已,面試結束就忘了。這也合理,因為許多地方都是教你這些知識,卻沒告訴你要用在哪裡。
這本書共分成了五個章節,分別是:
1. 從重新認識JavaScript開始
2. 重要與不重要的資料型別
3. 物件與有趣的prototype
4. 從scope、closure以及this談底層運作
5. 理解非同步
每個章節都對應到了一些令初學者很頭痛的話題,而你至少可以找到底下疑問的解答:
1. 知道this是什麼要幹嘛?
2. 知道[]+{}的結果是重要的嗎?
3. Closure到底可以用在哪裡?
4. Prototype chain好複雜,為什麼又是prototype又是__proto__?
5. 理解Event loop中的microtask可以幹嘛?
6. Call by value、call by reference還是call by sharing,重要嗎?
7. 我怎麼知道自己學習的東西是不是對的?
8. 我學這些知識在實際開發中到底有什麼用?
本書不教你死背知識,而是給你一個合理的學習理由,並且藉由實際的案例來帶入這些知識,告訴你為什麼要學習,在開發時又會用在哪裡。
有些人會說「以後AI要取代軟體工程師了,還需要學這些嗎?」,如果你現在就打算轉行,那確實不需要了。但我相信AI無法完全取代,還是要有人負責debug跟確認AI寫的東西,並負起責任。當僧多粥少時,誰的硬實力比較強,就有越多的優勢,而這就是在AI時代下繼續學習的理由。
在《JavaScript重修就好》這本書中,會秉持著重修的精神,相同的語法、相同的知識,但是為讀者帶來嶄新的體驗,並且發現這些知識背後的關聯以及學習的美好之處。我們會逐個擊破那些JavaScript中的重要概念,更進一步去理解它的原理以及特別之處,還有在實際開發上的應用。
作者簡介
Huli,你不一定記得這個名字,但是在Google搜尋時很有可能點進去過我寫的文章。喜歡寫code,喜歡寫部落格,有些人的興趣是旅遊、露營、看電影,而寫部落格就是我的興趣。不為了什麼特殊目的而寫,單純只是寫了會快樂。
對JavaScript的語法比對英文文法還熟,會的JavaScript小技巧比背過的英文單字還多。閱讀ECMAScript規格書得到的快樂比看了幾本龍傲天轉生爽作來得更長久,喜歡獲得知識時的那個Aha! moment。
參加過一些研討會給出自己喜歡的講題,如CYBERSEC、MOPCON、JSDC以及Modern Web Conference等等,有時講資安,有時講前端。
Blog: https://blog.huli.tw
Facebook: https://www.facebook.com/huli.blog
目錄大綱
▌第0章 導讀
前言
為什麼想寫這本書
AI時代下,學習的理由是什麼
本書架構
關於作者
致謝
▌第1章 從重新認識JavaScript開始
1.1 JavaScript的誕生:它跟Java真的無關嗎?
1.2 JavaScript的包袱:想丟也丟不掉
SmooshGate事件
Don't break the Web:別把網站弄壞!
被淘汰的HTML標籤
1.3 JavaScript的真理:該如何區分知識的真偽?
初探ECMAScript
String.prototype.repeat的實作
知名的typeof bug
你所不知道的註解
來看看JavaScript引擎的實作
1.4 JavaScript的執行環境:為什麼這個不能用?
薛丁格的函式
什麼是runtime?
從不同runtime學習JavaScript
小結
▌第2章 重要與不重要的資料型別
2.1 JavaScript 到底有幾種資料型別?
2.2 Number 與BigInt
數字與字串的轉換
浮點數與IEEE 754
特別的NaN
數字的範圍
有趣的位元運算
2.3 編碼與字串
從傳紙條學習編碼
真實世界中的編碼
字串與UTF-16跟UCS-2
有趣的字串冷知識
2.4 函式與arguments
腦力激盪時間
有趣的function
自動綁定的變數
多種建立函式的方法
腦力激盪解答時間
2.5 型別轉換與魔法
轉成原始型別的Magic methods
從被講爛的==與===中找到新鮮事
更多的魔術方法
看不見的Boxing
小結
▌第3章 物件與有趣的 prototype
3.1 從物件導向理解prototype
探究原理
模擬尋找key的過程
constructor與new
3.2 獨特的攻擊手法:Prototype pollution
Prototype pollution是怎麼發生的?
script gadgets
防禦方式
3.3 管他call by value還是reference
求值策略(Evaluation strategy)的紛爭
名詞真的這麼重要嗎?
理解機制,而非名詞
3.4 有趣的defineProperty 與Proxy
更多的屬性以及Object.defineProperty
Vue2與Object.defineProperty
物件的代理:Proxy
Proxy的其他應用
3.5 淺層複製與深層複製
自己做一個深層複製
從lodash原始碼中學習
內建的深層複製structuredClone
小結
▌第4章 從scope、closure 與this談底層運作
4.1 JavaScript如何解析變數?談談scope
常見的scope問題
4.2 Hoisting 不是重點,理解底層機制才是
V8引擎的執行流程
V8的加速秘密武器:TurboFan
來看變數宣告的規格吧
4.3 Closure的實際運用
環境隔離的妙用
幫函式加上功能
被忽略的記憶體怪獸
4.4 This 是什麼,真的重要嗎?
從Java的this開始
走樣的this
刻意改變this
小結
▌第5章 理解非同步
5.1 逼不得已的非同步
阻塞與非阻塞
同步與非同步
瀏覽器上的同步與非同步
你以為陌生卻熟悉的callback
Callback function的參數
5.2 理解非同步的關鍵:Event loop
什麼是event loop?
從範例中學習event loop
解答時間
5.3 Promise與async/await
Promise的基本使用方式
讓非同步看起來像同步:async與await
該如何理解async/await的執行順序?
再多瞭解Promise一點
5.4 從Promise開始擴充event loop模型
Task與microtask
Event handler的同步與非同步
Event loop與畫面的更新
在React以及Vue中的應用
Event loop的規格
小結
▌結語
▌附錄
授權條款
ECMAScript® 2024 Language Specification
facebook/react
ungap/structured-clone
v8/v8
vercel/next.js
vuejs/corezloirock/core-js

















