深入淺出 JavaScript 程式設計 第二版
Head First JavaScript Programming- 2nd Edition
-
85折 1020元
1200元
-
預計最高可得金幣50點
?
可100%折抵
活動加倍另計 -
HAPPY GO享100累1點 4點抵1元 折抵無上限
-
分類:中文書>電腦資訊>網頁開發>JavaScript/jQuery追蹤? 追蹤分類後,您會在第一時間收到分類新品通知。
- 作者: Eric T. Freeman, Elisabeth Robson 追蹤 ? 追蹤作者後,您會在第一時間收到作者新書通知。
- 譯者:黃銘偉
- 出版社: 歐萊禮 追蹤 ? 追蹤出版社後,您會在第一時間收到出版社新書通知。
- 出版日:2026/01/30
活動訊息
內容簡介
語法學了就忘、程式書翻開就想睡…… ╰(▔皿▔╰)
快來體驗最適合大腦的學習方法
跳脫硬背語法這種痛苦又折磨的舊方法
圖像漫畫 + 情境式教學 + 互動練習
= 多感官的腦神經科學導向學習法
暢銷超過10年的經典新版,帶你一步步建立真正的程式思維
不只教你「怎麼寫」,還要合理、合規,而且真的「記得住」
▌你適合這本書嗎?
• 完全初學,但不想被教科書式寫法勸退的人
• 學過JavaScript,卻到處卡卡而心生放棄的人(喂喂!現在放棄,比賽就結束了吶!)
• 再也不想忍受枯燥,想要有點瘋、有點鬆,但內容超紮實的學習方式的你
▌來看看這些大師級的推薦
「這本書以前所未有的方式釋放了JavaScript的威能!告別枯燥乏味的程式碼教材,迎接有趣又創新的教學方式,幫助你精通時下最熱門的程式語言!準備好徹底顛覆你學習JavaScript的方式!」
—— Doreen Lorenzo,德州大學奧斯汀分校/設計與創意科技學院 副院長
「Freeman和Robson是我見過最棒的老師,沒有人比他們更了解JavaScript。這是少數幾本我可以毫無保留推薦的軟體與計算相關書籍之一。」
——David Gelernter,耶魯大學/電腦科學教授
「這本書清晰、引人入勝的對話風格,搭配淺顯易懂的範例、練習和讀者挑戰關卡,使其成為有學習動機的自學者不可或缺的工具。」
——Josh Sharfman,Shalhevet高中/電腦科學教師
▌這本書到底有什麼?
本書將帶你踏上全面探索現代JavaScript的旅程,涵蓋從核心語言基礎到當今最尖端的新功能。
我們會深入探討JavaScript型別的微妙之處,以及其函式無與倫比的靈活性。
你會學習如何熟練運用類別與物件,最終理解closure的概念。
你還會親自動手操作瀏覽器的DOM(document object model),以令人興奮的方式與JavaScript互動。
這本書讓你不只是閱讀,還有遊戲和解謎可玩、一起思考奧秘,並以前所未有的方式體驗JavaScript。
此外,你還會寫出大量的實際程式碼,讓你能開始打造屬於自己的應用程式。
▌《深入淺出》系列為何如此與眾不同?
曾經讀過《深入淺出》系列的讀者一定知道,這本書充滿了專為大腦設計的視覺化風格,好玩、好讀又好吸收。
尚未看過的讀者也別擔心,翻開書就是讓你欲罷不能的沉浸式學習!
本書跳脫讓人眼睛酸澀又昏昏欲睡的技術文字,用圖像和情境打造多重感官的閱讀饗宴,帶你一口氣讀懂JavaScript。
學習原來可以這麼有趣又有感!
快來體驗最適合大腦的學習方法
跳脫硬背語法這種痛苦又折磨的舊方法
圖像漫畫 + 情境式教學 + 互動練習
= 多感官的腦神經科學導向學習法
暢銷超過10年的經典新版,帶你一步步建立真正的程式思維
不只教你「怎麼寫」,還要合理、合規,而且真的「記得住」
▌你適合這本書嗎?
• 完全初學,但不想被教科書式寫法勸退的人
• 學過JavaScript,卻到處卡卡而心生放棄的人(喂喂!現在放棄,比賽就結束了吶!)
• 再也不想忍受枯燥,想要有點瘋、有點鬆,但內容超紮實的學習方式的你
▌來看看這些大師級的推薦
「這本書以前所未有的方式釋放了JavaScript的威能!告別枯燥乏味的程式碼教材,迎接有趣又創新的教學方式,幫助你精通時下最熱門的程式語言!準備好徹底顛覆你學習JavaScript的方式!」
—— Doreen Lorenzo,德州大學奧斯汀分校/設計與創意科技學院 副院長
「Freeman和Robson是我見過最棒的老師,沒有人比他們更了解JavaScript。這是少數幾本我可以毫無保留推薦的軟體與計算相關書籍之一。」
——David Gelernter,耶魯大學/電腦科學教授
「這本書清晰、引人入勝的對話風格,搭配淺顯易懂的範例、練習和讀者挑戰關卡,使其成為有學習動機的自學者不可或缺的工具。」
——Josh Sharfman,Shalhevet高中/電腦科學教師
▌這本書到底有什麼?
本書將帶你踏上全面探索現代JavaScript的旅程,涵蓋從核心語言基礎到當今最尖端的新功能。
我們會深入探討JavaScript型別的微妙之處,以及其函式無與倫比的靈活性。
你會學習如何熟練運用類別與物件,最終理解closure的概念。
你還會親自動手操作瀏覽器的DOM(document object model),以令人興奮的方式與JavaScript互動。
這本書讓你不只是閱讀,還有遊戲和解謎可玩、一起思考奧秘,並以前所未有的方式體驗JavaScript。
此外,你還會寫出大量的實際程式碼,讓你能開始打造屬於自己的應用程式。
▌《深入淺出》系列為何如此與眾不同?
曾經讀過《深入淺出》系列的讀者一定知道,這本書充滿了專為大腦設計的視覺化風格,好玩、好讀又好吸收。
尚未看過的讀者也別擔心,翻開書就是讓你欲罷不能的沉浸式學習!
本書跳脫讓人眼睛酸澀又昏昏欲睡的技術文字,用圖像和情境打造多重感官的閱讀饗宴,帶你一口氣讀懂JavaScript。
學習原來可以這麼有趣又有感!
目錄
1 淺嚐JavaScript
JavaScript的運作方式
你要如何編寫JavaScript
如何將JavaScript放入你的頁面
如何撰寫一個述句(statement)
變數(variables)與值(values)
常數(constants),另一種變數
重複執行任務
while迴圈如何運作
使用JavaScript做決定
接觸使用者並與他們溝通
仔細檢視console.log
開啟主控台(console)
編寫一個實際的JavaScript應用程式
如何在我的頁面中加入程式碼?
2 撰寫真實程式碼:繼續深入讓我們打造一個戰艦(Battleship)遊戲
首先是高階的設計
逐步解析虛擬程式碼(pseudocode)
在我們繼續之前,別忘了HTML!
撰寫Simple Battleship的程式碼
現在我們來編寫遊戲邏輯
做一點品質管控(quality assurance)
完成Simple Battleship遊戲
產生隨機數字(random number)的步驟
恭喜你完成第一個真正的JavaScript程式,並簡短談談程式碼的重複使用
3 函式介紹:邁向函式化之路這段程式碼到底有什麼問題?
你可以傳入什麼給函式?
JavaScript是藉由值傳遞(pass-by-value)的
奇怪的函式
函式也能回傳東西
追蹤帶有return述句的函式
全域(global)變數和區域(local)變數
了解區域和全域變數的範疇(scope)
別忘了宣告你的區域變數!
變數的短暫生命
4 資料排排站:
你能幫助Bubbles-R-Us泡泡公司嗎?
如何在JavaScript中表示多個值
陣列如何運作
Phrase-O-Matic片語產生器
回到Bubbles-R-Us...
迭代陣列還有一種更好的方法
使用後置遞增運算子(post-increment operator)重製for迴圈
從頭建立陣列(並為之添加東西)
快速瀏覽一下程式碼
撰寫printAndGetHighScore函式
使用printAndGetHighScore重構(refactor)程式碼
全部整合在一起
5 了解物件:物件村之旅
思考特性(properties)...
如何建立物件
到底什麼是「物件導向」?
特性如何運作
變數如何存放物件?好奇的人想知道...
比較原始型別值(primitives)與物件
使用物件做到更多事
這輛計程車符合資格嗎?
讓我們再談談如何將物件傳給函式
Auto-O-Matic
如何為你的物件添加行為(behavior)
改善drive方法
為什麼drive方法不知道started特性?
「this」如何運作
方法簡寫(method shorthand)
行為如何影響狀態(state)
現在讓我們用狀態影響行為
恭喜你完成第一個物件!
6 與網頁互動:認識DOM
JavaScript實際上是如何與你頁面互動的
如何製作你自己的DOM
初嚐DOM
使用getElementById獲取元素
我究竟從DOM得到了什麼?
尋找你內在的HTML
更改DOM時會發生什麼事
在頁面完全載入之前,別想執行我的程式碼!
你說「事件處理器(event handler)」,我說「回呼(callback)」
如何使用setAttribute設定屬性(attribute)
屬性的更多樂趣!
那麼DOM還有什麼用呢?
7 型別、相等性、轉換,以及那些有的沒的:認真的型別
小心,你可能意外碰到undefined...
如何使用null
處理NaN
了解相等性運算子(又稱為==)
相等性如何轉換其運算元
如何得到更嚴格的相等性
更多的型別轉換
如何判斷兩個物件是否相等
truthy就在眼前...
JavaScript會將什麼視為falsey
字串的祕密生活
字串如何能夠同時像是原始型別值(primitive)和物件
範本字面值(template literals)如何運作
字串之特性與方法的五分鐘導覽
椅子爭奪戰
8 全面整合:建造一個App
建立一個真正的戰艦遊戲
回到HTML和CSS
建立HTML頁面:整體全貌
新增一些樣式(style)
使用hit和miss類別
設計遊戲
實作視圖(view)
模型(model)
你需要一艘更大的船...和遊戲棋盤
實作控制器(controller)
處理玩家的猜測
取得玩家的猜測
如何放置船艦
恭喜,是時候創業了
9 處理事件:進入非同步世界
何謂事件?
何謂事件處理器(event handler)?
建立事件處理器
透過製作遊戲來了解事件...
實作遊戲
讓我們加入更多影像
如何為所有影像重複使用相同的處理器
事件物件(event object)如何運作
讓事件物件發揮作用
事件和佇列(queues)
setTimeout如何運作
完成影像遊戲
10 匿名函式與高階函式:解放函式
function關鍵字神祕的雙重身分
如果函式是值,我們就能把它們指定給變數
看看函式的另一面...
如何使用匿名函式(anonymous function)
我們可以使用箭號函式(arrow functions)讓程式碼更簡短
建立箭號函式
Webville Cola
了解陣列的sort方法
回到Webville Cola
介紹高階函式(higher-order functions)
使用高階函式進行過濾
別忘了你的匿名和箭號函式
使用reduce得到總銷售箱數
鏈串map、filter和reduce
以forEach進行迭代
11 現代語法、語彙範疇與closure:函式真功夫
認真研究函式語法
分散你的引數
關於函式有些事情我們還沒告訴你...
函式宣告會被「拉升(hoisted)」
我們已經完成函式宣告,現在要做的是其他的事情
我們需要談談範疇
讓函式超越全域範疇
溫習語彙範疇(lexical scope)
再次看看我們的外層(outer)和內層(inner)函式
使用範疇進行封裝(encapsulation)
兩條重要的JavaScript範疇規則
如何製作一個closure
使用closure實作魔法計數器(magic counter)
使用closure實作計數器
makeTimer的運作方式
實作onlyOnceMaker
12 進階的物件建構:創造物件
使用物件字面值建立物件
使用物件的慣例
介紹類別
如何定義類別
如何從類別建立出物件
類別的運作方式
讓我們加入一些方法
生產的時間到了!
基本的Car類別
使用extends實作Taxi類別
新增方法到Taxi類別
實作RocketCar類別
使用物件字面值來整理我們的建構器
改造Car建構器
存取器(accessor)特性
使用取值器(getter)
若無設值器(setter),取值器又有何用?
靜態特性和方法
計算我們的車子產量
A 漏網之魚:十大遺珠之憾
#1 模組(modules)
#2 JSON
#3 Promise(承諾)
#4 解構指定(destructuring assignment)
#5 Symbol(符號)和BigInt(大整數)
#6 Map(映射)與Set(集合)
#7 使用DOM執行更多操作
#8 window物件
#9 伺服端(server-side)JavaScript
#10 遞迴(recursion)
JavaScript的運作方式
你要如何編寫JavaScript
如何將JavaScript放入你的頁面
如何撰寫一個述句(statement)
變數(variables)與值(values)
常數(constants),另一種變數
重複執行任務
while迴圈如何運作
使用JavaScript做決定
接觸使用者並與他們溝通
仔細檢視console.log
開啟主控台(console)
編寫一個實際的JavaScript應用程式
如何在我的頁面中加入程式碼?
2 撰寫真實程式碼:繼續深入讓我們打造一個戰艦(Battleship)遊戲
首先是高階的設計
逐步解析虛擬程式碼(pseudocode)
在我們繼續之前,別忘了HTML!
撰寫Simple Battleship的程式碼
現在我們來編寫遊戲邏輯
做一點品質管控(quality assurance)
完成Simple Battleship遊戲
產生隨機數字(random number)的步驟
恭喜你完成第一個真正的JavaScript程式,並簡短談談程式碼的重複使用
3 函式介紹:邁向函式化之路這段程式碼到底有什麼問題?
你可以傳入什麼給函式?
JavaScript是藉由值傳遞(pass-by-value)的
奇怪的函式
函式也能回傳東西
追蹤帶有return述句的函式
全域(global)變數和區域(local)變數
了解區域和全域變數的範疇(scope)
別忘了宣告你的區域變數!
變數的短暫生命
4 資料排排站:
你能幫助Bubbles-R-Us泡泡公司嗎?
如何在JavaScript中表示多個值
陣列如何運作
Phrase-O-Matic片語產生器
回到Bubbles-R-Us...
迭代陣列還有一種更好的方法
使用後置遞增運算子(post-increment operator)重製for迴圈
從頭建立陣列(並為之添加東西)
快速瀏覽一下程式碼
撰寫printAndGetHighScore函式
使用printAndGetHighScore重構(refactor)程式碼
全部整合在一起
5 了解物件:物件村之旅
思考特性(properties)...
如何建立物件
到底什麼是「物件導向」?
特性如何運作
變數如何存放物件?好奇的人想知道...
比較原始型別值(primitives)與物件
使用物件做到更多事
這輛計程車符合資格嗎?
讓我們再談談如何將物件傳給函式
Auto-O-Matic
如何為你的物件添加行為(behavior)
改善drive方法
為什麼drive方法不知道started特性?
「this」如何運作
方法簡寫(method shorthand)
行為如何影響狀態(state)
現在讓我們用狀態影響行為
恭喜你完成第一個物件!
6 與網頁互動:認識DOM
JavaScript實際上是如何與你頁面互動的
如何製作你自己的DOM
初嚐DOM
使用getElementById獲取元素
我究竟從DOM得到了什麼?
尋找你內在的HTML
更改DOM時會發生什麼事
在頁面完全載入之前,別想執行我的程式碼!
你說「事件處理器(event handler)」,我說「回呼(callback)」
如何使用setAttribute設定屬性(attribute)
屬性的更多樂趣!
那麼DOM還有什麼用呢?
7 型別、相等性、轉換,以及那些有的沒的:認真的型別
小心,你可能意外碰到undefined...
如何使用null
處理NaN
了解相等性運算子(又稱為==)
相等性如何轉換其運算元
如何得到更嚴格的相等性
更多的型別轉換
如何判斷兩個物件是否相等
truthy就在眼前...
JavaScript會將什麼視為falsey
字串的祕密生活
字串如何能夠同時像是原始型別值(primitive)和物件
範本字面值(template literals)如何運作
字串之特性與方法的五分鐘導覽
椅子爭奪戰
8 全面整合:建造一個App
建立一個真正的戰艦遊戲
回到HTML和CSS
建立HTML頁面:整體全貌
新增一些樣式(style)
使用hit和miss類別
設計遊戲
實作視圖(view)
模型(model)
你需要一艘更大的船...和遊戲棋盤
實作控制器(controller)
處理玩家的猜測
取得玩家的猜測
如何放置船艦
恭喜,是時候創業了
9 處理事件:進入非同步世界
何謂事件?
何謂事件處理器(event handler)?
建立事件處理器
透過製作遊戲來了解事件...
實作遊戲
讓我們加入更多影像
如何為所有影像重複使用相同的處理器
事件物件(event object)如何運作
讓事件物件發揮作用
事件和佇列(queues)
setTimeout如何運作
完成影像遊戲
10 匿名函式與高階函式:解放函式
function關鍵字神祕的雙重身分
如果函式是值,我們就能把它們指定給變數
看看函式的另一面...
如何使用匿名函式(anonymous function)
我們可以使用箭號函式(arrow functions)讓程式碼更簡短
建立箭號函式
Webville Cola
了解陣列的sort方法
回到Webville Cola
介紹高階函式(higher-order functions)
使用高階函式進行過濾
別忘了你的匿名和箭號函式
使用reduce得到總銷售箱數
鏈串map、filter和reduce
以forEach進行迭代
11 現代語法、語彙範疇與closure:函式真功夫
認真研究函式語法
分散你的引數
關於函式有些事情我們還沒告訴你...
函式宣告會被「拉升(hoisted)」
我們已經完成函式宣告,現在要做的是其他的事情
我們需要談談範疇
讓函式超越全域範疇
溫習語彙範疇(lexical scope)
再次看看我們的外層(outer)和內層(inner)函式
使用範疇進行封裝(encapsulation)
兩條重要的JavaScript範疇規則
如何製作一個closure
使用closure實作魔法計數器(magic counter)
使用closure實作計數器
makeTimer的運作方式
實作onlyOnceMaker
12 進階的物件建構:創造物件
使用物件字面值建立物件
使用物件的慣例
介紹類別
如何定義類別
如何從類別建立出物件
類別的運作方式
讓我們加入一些方法
生產的時間到了!
基本的Car類別
使用extends實作Taxi類別
新增方法到Taxi類別
實作RocketCar類別
使用物件字面值來整理我們的建構器
改造Car建構器
存取器(accessor)特性
使用取值器(getter)
若無設值器(setter),取值器又有何用?
靜態特性和方法
計算我們的車子產量
A 漏網之魚:十大遺珠之憾
#1 模組(modules)
#2 JSON
#3 Promise(承諾)
#4 解構指定(destructuring assignment)
#5 Symbol(符號)和BigInt(大整數)
#6 Map(映射)與Set(集合)
#7 使用DOM執行更多操作
#8 window物件
#9 伺服端(server-side)JavaScript
#10 遞迴(recursion)
配送方式
-
台灣
- 國內宅配:本島、離島
-
到店取貨:
不限金額免運費
-
海外
- 國際快遞:全球
-
港澳店取:
詳細資料
詳細資料
-
- 語言
- 中文繁體
- 裝訂
- 紙本平裝
-
- ISBN
- 9786264252614
- 分級
- 普通級
-
- 頁數
- 660
- 商品規格
- 菊8開21*28cm
-
- 出版地
- 台灣
- 適讀年齡
- 全齡適讀
-
- 注音
- 級別
訂購/退換貨須知
退換貨須知:
**提醒您,鑑賞期不等於試用期,退回商品須為全新狀態**
-
依據「消費者保護法」第19條及行政院消費者保護處公告之「通訊交易解除權合理例外情事適用準則」,以下商品購買後,除商品本身有瑕疵外,將不提供7天的猶豫期:
- 易於腐敗、保存期限較短或解約時即將逾期。(如:生鮮食品)
- 依消費者要求所為之客製化給付。(客製化商品)
- 報紙、期刊或雜誌。(含MOOK、外文雜誌)
- 經消費者拆封之影音商品或電腦軟體。
- 非以有形媒介提供之數位內容或一經提供即為完成之線上服務,經消費者事先同意始提供。(如:電子書、電子雜誌、下載版軟體、虛擬商品…等)
- 已拆封之個人衛生用品。(如:內衣褲、刮鬍刀、除毛刀…等)
- 若非上列種類商品,均享有到貨7天的猶豫期(含例假日)。
- 辦理退換貨時,商品(組合商品恕無法接受單獨退貨)必須是您收到商品時的原始狀態(包含商品本體、配件、贈品、保證書、所有附隨資料文件及原廠內外包裝…等),請勿直接使用原廠包裝寄送,或於原廠包裝上黏貼紙張或書寫文字。
- 退回商品若無法回復原狀,將請您負擔回復原狀所需費用,嚴重時將影響您的退貨權益。





商品評價