為您推薦
類似書籍推薦給您
【簡介】 1. 圖像化教學,讀得更快 程式碼搭配圖例,降低閱讀門檻。 2. 看圖抓重點的版面導航 以圖文指引快速定位重點與步驟。 3. 課前提問,連結學習情境 章首用小題帶入,先建立學習脈絡。 4. 技能活動設計,做中學 以「動動腦」任務加深概念理解。 5. 開發環境手把手上線 含 Dev-C++ 安裝與介面分區說明。 6. 範例資源可下載,方便練習 提供範例檔下載管道,練習更順。 7. 課後實作題,練到會 每章附實作練習,強化解題與程式能力。 【目錄】 第1章 工場安全衛生及程式應用介紹 1-1 實習工場設施環境及機具設備的認識 1-2 職業安全及衛生 1-3 消防安全 1-4 程式應用介紹 技能活動 課後習題 第2章 C/C++程式架構 2-1 應用實例說明 2-2 C/C++語言架構 2-3 C/C++專案架構介紹 2-4 開發環境介面 2-5 專案除錯 技能活動 課後習題 第3章 變數與常數 3-1 程式架構介紹 3-2 基本輸入/輸出(I/O)函式 3-3 變數和常數宣告 3-4 變數和常數應用 技能活動 課後習題 第4章 資料型態 4-1 資料型態 4-2 資料型態轉換 4-3 資料型態應用實例 技能活動 課後習題 第5章 運算式及運算子 5-1 運算式 5-2 運算子 5-3 運算式與運算子 應用實例 技能活動 課後習題 第6章 流程指令及迴圈 6-1 流程指令(Control Flow Statements) 6-2 迴圈指令(Loop Statements) 6-3 流程指令與迴圈 應用實例 技能活動 課後習題 第7章 陣列與指標 7-1 陣列 7-2 指標 7-3 陣列與指標應用實例 技能活動 課後習題 第8章 公用函式及函式實習 8-1 公用函式 8-2 函式 8-3 函式應用實例 技能活動 課後習題 第9章 結構及類別 9-1 結構 9-2 類別 9-3 物件導向程式設計實例 技能活動 課後習題 附錄 A 課後習題簡答 B 中英文名詞索引
類似書籍推薦給您
【簡介】 amazon.com 4.6★評價 [資料結構與演算法類別] 銷售榜首 ☑ 結構化學習地圖 + 設計模式 + 面試攻略 ☑ 101道真實面試實例 × 1000+圖解 × 6步驟面試解題架構 如果你想在程式設計面試過程中有出色的表現,本書就是你的書架上必備的一本書。本書提供了一種結構化的問題解決做法;對於任何滿懷抱負的軟體工程師來說,這絕對是一份無價的指南。 ——Navdeep Singh,NeetCode創辦人 本書改變了程式設計面試的準備方式。它本身的結構以及它針對各種常見模式的結構化做法,把一些複雜的概念拆解得清清楚楚,讓各種現實世界的挑戰變得更容易處理。本書特別針對面試官的各種需求,提供了相當實用的見解以及清晰的解釋;對於所有認真考慮要應徵技術性職位的人來說,本書絕對是必讀之作。 ——Uday Kiran Medisetty,Uber傑出工程師 身為Amazon的技術副總裁,我曾經參與過1,200多次的面試,也看過許多才華橫溢的工程師,在白板前想要快速識別出問題,並運用常見的演算法解決問題,卻屢遭困難。本書不但提供具體的例子,還會揭露其中潛在的特定模式,以確保你能做好充分的準備,在面試過程中呈現出更優秀的表現。 ——Ethan Evans,Amazon前副總裁 來自讀者的讚譽 「優質內容,對通過FANNG+的系統設計面試輪有很大的幫助。」 「軟體工程師都應該看這本書!」 「用大量的圖表和簡單易懂的方式解說觀念,看完一定會有收獲!」 「除了書中發現的大量例子之外,最重要的方面是向面試官展示設計的正式方法。」 「不僅有利於面試準備,而且有足夠的技術深度,非常實用,可以作為日常工作的靈感來源。」 本書包含以下內容: .面試官想從答題中看到的真正重點,以及其中內行人才懂的門道。 .101道真實程式面試題,及完整詳細的解決方案。 .直觀解說,帶你逐步理解每一道題目,彷彿身歷其境於面試現場解題。 .1,000+圖解說明,助你掌握核心概念與常見設計模式。 【目錄】 第1章:雙指針(Two Pointers) 第2章:雜湊對照表& 集合(Hash Map & Set) 第3章:鏈結列表(Linked List) 第4章:快指針& 慢指針(Fast & Slow Pointer) 第5章:滑動視窗(Sliding Window) 第6章:二分搜尋法(Binary Search) 第7章:堆疊(Stack) 第8章:堆積(Heap) 第9章:區間(Interval) 第10章:前幾項加總和(Prefix Sum) 第11章:樹狀結構(Tree) 第12章:檢索樹(Trie) 第13章:圖譜(Graph) 第14章:回溯(Backtracking) 第15章:動態規劃(Dynamic Programming) 第16章:貪婪(Greedy)的做法 第17章:排序 & 搜尋 第18章:位元操作(Bit Manipulation) 第19章:數學 & 幾何
類似書籍推薦給您
【簡介】 (ノ◕ヮ◕)ノ 快來體驗最熱門的生成式AI ˚₊.把ChatGPT加入你的Scratch程式 ⋅˚₊. ˚₊.不需要數學知識,動手就能玩 ⋅˚₊. ˚₊.輕鬆體驗機器學習的樂趣 ⋅˚₊. ◢ 用小學生也能理解的方式理解機器學習 ◣ 如果你已經會用Scratch,而且開始想用程式實現一些自己的想法 這本書就是能讓你想法成真的好幫手! 一起來使用Scratch的擴充功能, 做出「看得懂」影像、「聽得懂」聲音、能「偵測動作」 甚至能「自己生成內容」這樣有趣又厲害的程式。 不需要先學會文字型程式語言,也不需要具備艱深的數學知識 只要邊玩邊學、一步步跟著做,就能了解機器學習是怎麼一回事 然後更進一步想像在現實生活中可以派上什麼用場! 如果你已經開始喜歡寫程式、覺得用科技解決問題超酷 現在,還想更進一步探索AI的世界 這本書一定會是你邁向下一步的好夥伴! ◢ 專家推薦 ◣ 「這是一本童趣盎然的實作教材。前半篇使用Google Teachable Machine帶領讀者實作影像分類、聲音分類還有辨識人體姿勢,後半篇則是以極為生動的方式來說明何謂機器學習、為什麼機器需-要學習以及有哪些學習方式,甚至還談到了遺傳演算法的基礎。」 -- 曾吉弘博士, CAVEDU教育團隊/美國麻省理工學院電腦科學與人工智慧實驗室(MIT CSAIL)訪問學者【目錄】 前言 關於本書 序章 10分鐘就能體驗機器學習 用ImageClassifier2Scratch體驗影像辨識 第1章 ﹝影像辨識篇﹞ - 製作猜拳遊戲 1-1 準備ML2Scratch 1-2 讓ML2Scratch學習影像 1-3 使用分類模型辨識影像 1-4 用Scratch設計猜拳遊戲 ︱專欄︱ 即使影像張數少,仍能辨識影像的原因 第2章 ﹝語音辨識篇﹞ - 製作分辨聲音的數位寵物 2-1 使用Teachable Machine的機器學習 2-2 Teachable Machine與TM2Scratch的用法 2-3 用Teachable Machine學習聲音 2-4 上傳分類模型與Scratch連結 2-5 使用Scratch製作數位寵物 ︱專欄︱ 小型裝置也可以進行機器學習 第3章 ﹝推測姿勢篇﹞ - 製作運用身體的樂器程式 3-1 可以推測臉孔及身體部位的PoseNet 3-2 設計變裝程式 3-3 設計用身體動作來發聲的樂器程式 ︱專欄︱ 姿勢推測方法的演變 第4章 ﹝知識篇﹞ - 了解機器學習 4-1 何謂機器學習? 4-2 機器學習與人類的學習 4-3 機器如何導出類型?(人工神經網路與單純感知器) 4-4 用單純感知器分類蘋果與香蕉 4-5 了解單純感知器的結構 ︱專欄︱ 發生在我們周遭的「學習」 第5章 ﹝生成文章篇﹞ - 讓AI創造遊戲角色的台詞 5-1 ChatGPT是什麼? 5-2 嘗試使用ChatGPT 5-3 ChatGPT的運作機制 5-4 ChatGPT2Scratch的準備工作 5-5 試用ChatGPT2Scratch 5-6 自動生成RPG遊戲的人物台詞 第6章 ﹝進階篇﹞ - 用遺傳演算法讓貓咪的動作進化 6-1 何謂遺傳演算法? 6-2 遺傳演算法的機制 6-3 建立貓咪的基因 6-4 移動貓咪 6-5 結束動作後,計算所有貓咪的平均距離 6-6 產生自然淘汰 6-7 用父代與母代基因製造下一代的基因 6-8 發生突變 6-9 繪製平均距離的圖表 ︱專欄︱ 搭配擴充功能,拓展運用範圍 附錄 使用了其他擴充功能的機器學習 A-1 用Scratch製作語音翻譯 A-2 更仔細辨識手指、臉孔 A-3 製作特殊擴充功能的方法 後記 參考文獻
類似書籍推薦給您
【簡介】 本書為作者基於多年程式設計課程之教學實踐與學生學習歷程的觀察與回饋,編撰而成。書中以簡明的語言、完整的範例與圖解搭配章節進程,逐步拆解程式語言的結構與觀念,引導讀者循序漸進地掌握程式設計的基礎能力,並奠定以Java語言為核心的邏輯思維與應用實作基礎,做為邁向軟體開發與資訊應用之路的第一步。 全書共14章,第一章說明Java程式語言的起源與發展,協助讀者掌握其在資訊科技中的定位與優勢。第二章介紹整合開發環境的操作方式,包含JDK安裝、Eclipse等主流工具的基本操作,使初學者快速上手並能建立有效的開發流程。第三章至第六章逐步鋪陳程式設計的邏輯架構,從變數與資料型態的處理,到條件判斷的基本與進階應用,建立讀者理解控制流程的基礎能力。第七章則聚焦於程式的執行過程、錯誤追蹤與除錯技巧,幫助學習者養成獨立解決問題的實務能力。 在第八章與第九章中,書中介紹迴圈與巢狀迴圈的應用情境與技巧,透過逐步練習強化重複運算的設計能力。第十章整合常用的數學函式與Java內建方法,加強數值處理能力;第十一章則闡述方法(Method)的模組化設計,提升程式的重用性與可維護性。第十二與十三章延伸至一維與多維陣列的操作技巧,搭配圖示與實作幫助讀者靈活處理資料結構。第十四章介紹例外處理機制,強調撰寫具備容錯性與穩健性之程式的重要性。 本書主要為大專院校課程需求設計編寫,書中不提供解答,出版社與銷售單位均無法提供解答,自學讀者選購前請知悉。 【目錄】 Chapter 01 Java程式語言之發展 1-1 Java程式語言源起 1-2 Java技術的應用範疇及場域 作業 Chapter 02 Java程式整合開發環境 2-1 整合開發環境介紹 2-2 OnlineGDB 2-3 Eclipse IDE 作業 Chapter 03 程式設計概念與Java程式設計 3-1 結構化程式設計 3-2 物件導向程式設計 3-3 結構化程式與物件導向程式之異同 作業 Chapter 04 變數、資料型態與輸入/輸出處理 4-1 變數與識別字 4-2 運算元、運算子與運算式 4-3 運算式解析與優先權 4-4 數值型態轉換 4-5 鍵盤輸入與顯示訊息 作業 Chapter 05 選擇控制基礎概念 5-1 選擇結構與程式執行流程 5-2 邏輯與條件判斷 5-3 if-else與 if 敘述 5-4 if-else-if巢狀選擇結構 5-5 選擇結構區塊與if-else 配對 程式實作演練 作業 Chapter 06 選擇控制進階概念 6-1 switch敘述 6-2 break 與 switch敘述 6-3 switch vs. if-else:適用情境與應用案例 6-4 switch 與 if-else 的整合應用 程式實作演練 作業 Chapter 07 程式執行、追蹤與除錯 7-1 Java程式的執行過程 7-2 使用Debug工具進行程式追蹤 7-3 常見的程式錯誤與除錯技巧 作業 Chapter 08 選擇控制進階概念 8-1 迴圈的概念 8-2 while 迴圈 8-3 迴圈控制方式:計數器控制與哨兵控制 8-4 for 迴圈 8-5 do-while 迴圈 程式實作演練 作業 Chapter 09 巢狀迴圈設計與進階應用 9-1 巢狀迴圈 9-2 嵌入break 與 continue 敘述 9-3 迴圈與選擇控制的整合應用 程式實作演練 作業 Chapter 10 數學函式與內建方法 10-1 Java內建數學套件:Math類別 10-2 Math類別程式案例 程式實作演練 作業 Chapter 11 方法 11-1 方法的概念和用途 11-2 方法的呼叫、參數傳遞,以及返回值 11-3 跨類別的方法呼叫 11-4 方法的重載 11-5 遞迴 程式實作演練 作業 Chapter 12 一維陣列 12-1 陣列的概念 12-2 陣列宣告和初始化 12-3 存取和修改陣列元素 12-4 使用迴圈操作陣列 12-5 排序和搜尋的應用 程式實作演練 作業 Chapter 13 多維陣列 13-1 為何需要多維陣列 13-2 二維陣列的初始化與存取 13-3 二維陣列的應用 13-4 三維陣列及多維陣列 13-5 類別java.util.Arrays 程式實作演練 作業 Chapter 14 例外處理 14-1 Java例外處理框架 14-2 try-catch區塊與throw 運作機制 14-3 try-catch-finally區塊運作機制 程式實作演練 作業 參考文獻
類似書籍推薦給您
【簡介】 語法學了就忘、程式書翻開就想睡…… ╰(▔皿▔╰) 快來體驗最適合大腦的學習方法 跳脫硬背語法這種痛苦又折磨的舊方法 圖像漫畫 + 情境式教學 + 互動練習 = 多感官的腦神經科學導向學習法 暢銷超過10年的經典新版,帶你一步步建立真正的程式思維 不只教你「怎麼寫」,還要合理、合規,而且真的「記得住」 ▌你適合這本書嗎? ? 完全初學,但不想被教科書式寫法勸退的人 ? 學過JavaScript,卻到處卡卡而心生放棄的人(喂喂!現在放棄,比賽就結束了吶!) ? 再也不想忍受枯燥,想要有點瘋、有點鬆,但內容超紮實的學習方式的你 ▌來看看這些大師級的推薦 「這本書以前所未有的方式釋放了JavaScript的威能!告別枯燥乏味的程式碼教材,迎接有趣又創新的教學方式,幫助你精通時下最熱門的程式語言!準備好徹底顛覆你學習JavaScript的方式!」 —— Doreen Lorenzo,德州大學奧斯汀分校/設計與創意科技學院 副院長 「Freeman和Robson是我見過最棒的老師,沒有人比他們更了解JavaScript。這是少數幾本我可以毫無保留推薦的軟體與計算相關書籍之一。」 ——David Gelernter,耶魯大學/電腦科學教授 「這本書清晰、引人入勝的對話風格,搭配淺顯易懂的範例、練習和讀者挑戰關卡,使其成為有學習動機的自學者不可或缺的工具。」 ——Josh Sharfman,Shalhevet高中/電腦科學教師 ▌這本書到底有什麼? 本書將帶你踏上全面探索現代JavaScript的旅程,涵蓋從核心語言基礎到當今最尖端的新功能。 我們會深入探討JavaScript型別的微妙之處,以及其函式無與倫比的靈活性。 你會學習如何熟練運用類別與物件,最終理解closure的概念。 你還會親自動手操作瀏覽器的DOM(document object model),以令人興奮的方式與JavaScript互動。 這本書讓你不只是閱讀,還有遊戲和解謎可玩、一起思考奧秘,並以前所未有的方式體驗JavaScript。 此外,你還會寫出大量的實際程式碼,讓你能開始打造屬於自己的應用程式。 ▌《深入淺出》系列為何如此與眾不同? 曾經讀過《深入淺出》系列的讀者一定知道,這本書充滿了專為大腦設計的視覺化風格,好玩、好讀又好吸收。 尚未看過的讀者也別擔心,翻開書就是讓你欲罷不能的沉浸式學習! 本書跳脫讓人眼睛酸澀又昏昏欲睡的技術文字,用圖像和情境打造多重感官的閱讀饗宴,帶你一口氣讀懂JavaScript。 學習原來可以這麼有趣又有感! 目錄 【簡介】 當你的大腦遇上JavaScript。此時此刻你正在努力學習,但你的腦袋卻幫了個倒忙,確保這些知識不會留下深刻印象。你的大腦想的是:「最好留些空間給更重要的事情,比如該躲避哪些野獸,或是全裸滑雪到底是不是個糟糕的主意」。那麼,要如何哄騙你的大腦,讓它以為學會JavaScript是攸關性命的大事呢? 這本書是為誰而寫的? 我們知道你在想什麼 後設認知(metacognition) 讓你的大腦屈服 讀我 技術審閱團隊 致謝 【1 淺嚐JavaScript:讓我們先踩踩水】 JavaScript賦予你超能力。JavaScript是Web真正的程式語言,可讓你在網頁中加入行為。有了JavaScript,你就可以接觸使用者、對感興趣的事件做出反應、從Web抓取資料用於你的網頁、在那些網頁中直接繪製圖形,還有更多其他功能,不再只有枯燥、無趣的靜態頁面。一旦你了解JavaScript,你就能為你的使用者創造嶄新的行為。 你也將成為搶手的人才。JavaScript不僅是最流行的程式語言之一,所有的現代瀏覽器都支援JavaScript,而且在瀏覽器以外的許多環境中也都有使用。稍後再詳述;現在,讓我們開始吧! JavaScript的運作方式 你要如何編寫JavaScript 如何將JavaScript放入你的頁面 JavaScript,你已經走了很長一段路... 如何撰寫一個述句(statement) 變數(variables)與值(values) 常數(constants),另一種變數 遠離那個鍵盤! 表達你自己 重複執行任務 while迴圈如何運作 使用JavaScript做決定 還有,當你需要做很多決定時 接觸使用者並與他們溝通 仔細檢視console.log 開啟主控台(console) 編寫一個實際的JavaScript應用程式 如何在我的頁面中加入程式碼?(讓我數數看有幾種方法!) 我們得把你們兩個分開 【2 撰寫真實程式碼:繼續深入】 你已經知道變數、型別、運算式...我們可以繼續往下說了。重點是,你已經知道了一些關於JavaScript的事情。事實上,你所知的已經足夠寫出一些真正的程式碼了。也就是可以做一些有趣的事情的程式碼、有人會想要使用的程式碼。你所欠缺的是編寫程式碼的真實經驗,而我們現在就要在此補救這一點。如何彌補?就是要一頭栽進去,用JavaScript寫個輕鬆好玩的小遊戲。雖然這目標很有野心,但我們會循序漸進地實現它。來吧,讓我們開始動手,如果你想藉此打造下一家新創公司,我們絕不會擋路,這些程式碼都是你的。 讓我們打造一個戰艦(Battleship)遊戲 首先是高階的設計 逐步解析虛擬程式碼(pseudocode) 哦,在我們繼續之前,別忘了HTML! 撰寫Simple Battleship的程式碼 現在我們來編寫遊戲邏輯 步驟1:設置迴圈,取得一些輸入 prompt的運作方式 步驟2:檢查使用者的猜測 添加命中偵測程式碼 步驟3:嘿,你擊沉了我的戰艦! 步驟4:提供一些賽後分析 做一點品質管控(quality assurance) 我們可以聊聊你那囉嗦的表達方式嗎... 完成Simple Battleship遊戲 產生隨機數字(random number)的步驟 恭喜你完成第一個真正的JavaScript程式,並簡短談談程式碼的重複使用 【3 函式介紹:邁向函式化之路】 為你的第一項超能力做好準備。你已經掌握了一些程式設計的技巧;現在是使用函式(functions)來真正推動事情發展的時候了。函式讓你可以寫出適用於各種不同情況的程式碼、可以一再重複使用的程式碼、更容易管理的程式碼、能夠進行抽象化並提供一個簡單名稱的程式碼,讓你可以忘記所有的複雜性,繼續處理重要的事情。你會發現函式不僅是你從指令稿寫手(scripter)轉型為程式設計師(programmer)的大門,也是JavaScript程式設計風格的關鍵。在本章中,我們將從最基本的知識開始,也就是函式的運轉機制,了解從內到外實際上是如何運作的,然後你將在本書其餘的章節中不斷磨練你的函式技巧。所以,現在就開始打好基礎吧! 這段程式碼到底有什麼問題? 對了,我們有碰巧提到「函式」嗎? 好吧,但它實際上是如何運作的? 你可以傳入什麼給函式? JavaScript是藉由值傳遞(pass-by-value)的 奇怪的函式 函式也能回傳東西 追蹤帶有return述句的函式 全域(global)變數和區域(local)變數 了解你區域和全域變數的範疇(scope) 故事還沒說完 別忘了宣告你的區域變數! 變數的短暫生命 【4 資料排排站:陣列登場】 JavaScript不只有數字、字串和Boolean值。到目前為止,你一直在使用原始型別(primitives,字串、數字和Boolean值,例如「Fido」、23和true)撰寫JavaScript程式碼。你可以使用原始型別做很多事情,但到了某個時候,你還是得處理更多的資料。比方說,購物車中的所有項目,或播放清單中的所有歌曲,或一組恆星及其視星等(apparent magnitude),或整個產品目錄。為此,你需要一點額外的火力。這類有序資料的首選型別是JavaScript的陣列(array),在本章中,我們將介紹如何將資料放入陣列、如何傳遞它,以及如何對其進行運算。在接下來的章節中,我們將探討其他幾種將資料結構化的方式,但讓我們先從陣列開始。 你能幫助Bubbles-R-Us泡泡公司嗎? 如何在JavaScript中表示多個值 陣列如何運作 那個陣列到底有多大? Phrase-O-Matic片語產生器 同時,回到Bubbles-R-Us... 如何迭代陣列 但等等,迭代陣列還有一種更好的方法 又到了這個時候...我們能談談你囉嗦的表達方式嗎? 使用後置遞增運算子(post-increment operator)重製for迴圈 從頭建立陣列(並為之添加東西) 勝出的是... 快速瀏覽一下程式碼 撰寫printAndGetHighScore函式 使用printAndGetHighScore重構(refactor)程式碼 全部整合在一起 【5 了解物件:物件村之旅】 到目前為止,你一直在你的程式碼中使用原始型別和陣列。而且你以相當程序化(procedural)的方式進行程式碼編寫,使用簡單的述句、條件式、for/while迴圈搭配函式,但這並不完全是物件導向(objectoriented)的。事實上,這根本不算物件導向!你確實在不知不覺中用了一些物件,但你自己還沒有寫出任何的物件。現在是時候離開這無聊的程序城,創造一些你自己的物件(objects)了。在本章中,你會發現為什麼使用物件會讓你的生活變得非常美好──嗯,至少是在程式設計的層面上變得美好(我們真的無法在一本書中幫你同時提升時尚品味和JavaScript技能)。事前警告:一旦你發現了物件的好,你就再也回不去了。當你抵達那裡時,請寄張明信片給我們。 有人說了「物件」嗎? 思考特性(properties)... 如何建立物件 到底什麼是「物件導向」? 特性如何運作 變數如何存放物件?好奇的人想知道... 比較原始型別值(primitives)與物件 使用物件做到更多事 這輛計程車符合資格嗎? 讓我們再談談如何將物件傳給函式 Auto-O-Matic 乖乖聽話!或者說,如何為你的物件添加行為(behavior) 改善drive方法 呃,等等,別那麼快... 為什麼drive方法不知道started特性? 「this」如何運作 方法簡寫(method shorthand) 行為如何影響狀態(state) 現在讓我們用狀態影響行為 恭喜你完成第一個物件! 知道嗎?你身邊到處都是物件! 【6 與網頁互動:認識DOM】 你在JavaScript方面已經有了長足的進步。事實上,你已經從新手進化為指令稿寫手,再進化為程式設計師(programmer)了。但是,還缺少一些東西。要真正開始運用JavaScript技能,你需要知道如何與你程式碼所在的網頁互動。只有做到這一點,你才能編寫出動態(dynamic)的頁面,這些頁面在載入之後會做出反應、進行回應和自我更新。那麼你要如何與網頁互動呢?使用DOM,也就是文件物件模型(document object model)。在本章中,我們將分解DOM,並示範如何以JavaScript使用它,教會你的網頁一些新的花招。 在上一章中,我們留給你一個小小的挑戰... 所以這段程式碼在做什麼? JavaScript實際上是如何與你頁面互動的 如何製作你自己的DOM 初嚐DOM 使用getElementById獲取元素 我究竟從DOM得到了什麼? 尋找你內在的HTML 更改DOM時會發生什麼事 在頁面完全載入之前,別想執行我的程式碼! 你說「事件處理器(event handler)」,我說「回呼(callback)」 為何要停在這?讓我們更進一步... 如何使用setAttribute設定屬性(attribute) 屬性的更多樂趣! 言歸正傳,回到太陽系... 那麼DOM還有什麼用呢? 【7 型別、相等性、轉換,以及那些有的沒的:認真的型別】 是時候認真對待我們的型別了。JavaScript的一大優點在於,你能在不了解大量語言細節的情況下,做到很多事情。但是,若要真正掌握這門語言,獲得升遷,並去追求你在人生中真正想做的事情,就必須精通型別(types)。還記得我們在第1章是怎麼說JavaScript的嗎?它可沒有那種含著銀湯匙出生、經過學術界同儕審查的語言定義。是沒錯,但缺乏學術背景並沒有阻止Steve Jobs和Bill Gates成就事業,也阻止不了JavaScript。這確實意謂著JavaScript並沒有...嗯,最經過深思熟慮的型別系統,而我們也會在過程中發現一些特異之處。不過別擔心,在本章中我們會把那些問題都解決,很快你就能避免在型別上的那些尷尬時刻了。 真相就在那裡... 小心,你可能意外碰到undefined... 如何使用null 處理NaN 變得更奇怪了... 我們要坦白一件事 了解相等性運算子(又稱為==) 相等性如何轉換其運算元 如何得到更嚴格的相等性 更多的型別轉換 如何判斷兩個物件是否相等 truthy就在眼前... JavaScript會將什麼視為falsey 字串的祕密生活 字串如何能夠同時像是原始型別值(primitive)和物件 範本字面值(template literals)如何運作 字串之特性與方法的五分鐘導覽 椅子爭奪戰 【8 全面整合:建造一個App】 繫好你的工具腰帶。也就是裝載你所有的程式編寫新技能、DOM知識,甚至還有一些HTML和CSS的工具腰帶。在本章中,我們要把所有東西都整合在一起,來建立我們第一個真正的Web應用程式(application)。不再是只有一艘戰艦和單一列藏身處的愚蠢玩具遊戲。在本章中,我們要建構整個體驗(experience):一個大而美觀的遊戲版面、多艘戰艦,以及直接在網頁上進行的使用者輸入。我們會使用HTML建立遊戲的頁面結構,使用CSS設定遊戲的視覺樣式,並撰寫JavaScript程式碼來控制遊戲的行為。準備好了嗎?這一章我們要全力衝刺,徹底放手一搏,在這裡寫下一些認真的程式碼。 這一次,讓我們建立一個真正的戰艦遊戲 退後一步...回到HTML和CSS 建立HTML頁面:整體全貌 新增一些樣式(style) 使用hit和miss類別 設計遊戲 實作視圖(view) 模型(model) 你需要一艘更大的船...和遊戲棋盤 我們要如何表示那些船艦 全都整合在一起 等等,我們能再談談你囉嗦的表達方式嗎? 擊殺的視圖... 實作控制器(controller) 處理玩家的猜測 取得玩家的猜測 如何放置船艦 避免碰撞! 恭喜,是時候創業了! 【9 處理事件:進入非同步世界】 翻開本章之後,你會發現自己就像綠野仙蹤的桃樂絲一樣,一轉眼已經不在堪薩斯(Kansas)了。到目前為止,你所寫的程式碼通常都是從上到下執行的──當然,你的程式碼可能會比較複雜一點,也會使用一些函式、物件和方法,但到了某個時間點,程式碼就只會按部就班地執行。很抱歉這麼晚才告訴你,其實JavaScript程式碼通常不是這樣寫的。取而代之,大多數的JavaScript都是為了對事件(events)做出反應而寫的。什麼樣的事件?比方說使用者點擊你的網頁、有資料透過網路抵達了、瀏覽器中的計時器到期、DOM中發生變化...等,這些只是少數幾個例子。事實上,在瀏覽器的幕後,一直都有各種事件在發生。在本章中,我們將重新思考JavaScript程式的編寫方式,並探討我們應該如何以及為何要寫出對事件做出反應的程式碼。 何謂事件? 何謂事件處理器(event handler)? 建立事件處理器 透過製作遊戲來了解事件... 實作遊戲 讓我們加入更多影像 如何為所有影像重複使用相同的處理器 事件物件(event object)如何運作 讓事件物件發揮作用 事件和佇列(queues) setTimeout如何運作 完成影像遊戲 【10 匿名函式與高階函式:解放函式】 掌握函式,所向披靡。每種技藝、工藝和學科都有一個關鍵原則,可以區分出中階玩家和頂尖高手──談到JavaScript時,差別在於對函式的真正了解。函式是JavaScript的基礎,我們用來設計和組織程式碼的許多技巧都取決於函式的進階知識和使用。通往這種層次函式應用的學習之路,既有趣又時常會讓人絞盡腦汁,所以準備好了嗎...接下來的兩章會有點像是威利.旺卡(Willy Wonka)的巧克力工廠冒險之旅──學習JavaScript函式更多知識的過程中,你會遇到一些瘋狂、古怪且奇妙的事情。 function關鍵字神祕的雙重身分 函式也是值 如果函式是值,我們就能把它們指定給變數 我們有提到函式在JavaScript中擁有 一等公民(first class)的地位嗎? 看看函式的另一面... 如何使用匿名函式(anonymous function) 我們得再談談你的囉嗦程度 我們可以使用箭號函式(arrow functions)讓程式碼更簡短 建立箭號函式 Webville Cola 了解陣列的sort方法 全部整合在一起 同時,回到Webville Cola 介紹高階函式(higher-order functions) 使用高階函式進行過濾 別忘了你的匿名和箭號函式 使用reduce得到總銷售箱數 鏈串map、filter和reduce 以forEach進行迭代 【11 現代語法、語彙範疇與closure:函式真功夫】 你已經征服了函式,但還有更多要學習的。本章將更進一步,我們要認真了。我們將教你如何運用處理引數(arguments)、參數(parameters)和指定(assignments)的進階技巧來提升你的語法技能。接著,我們會再看看範疇(scope),以及JavaScript如何管理範疇的一些細節。這段探索範疇奧妙之處的旅程,將帶領我們進入closure(閉包)的核心──這個概念經常蒙上神祕的面紗,但卻是精通JavaScript的關鍵。到頭來,你會發現自己運用JavaScript表達的能力,超乎你原先的想像。 認真研究函式語法 分散你的引數 關於函式有些事情我們還沒告訴你... 函式宣告會被「拉升(hoisted)」 我們已經完成函式宣告,現在要做的是其他的事情 我們需要談談範疇 讓函式超越全域範疇 溫習語彙範疇(lexical scope) 再次看看我們的外層(outer)和內層(inner)函式 使用範疇進行封裝(encapsulation) 兩條重要的JavaScript範疇規則 解開謎團 如何製作一個closure 使用closure實作魔法計數器(magic counter) 揭開神祕面紗... 使用closure實作計數器 makeTimer的運作方式 實作onlyOnceMaker 【12 進階的物件建構:創造物件】 到目前為止,我們一直在手工製作物件。對於所有的物件,我們都使用物件字面值(object literal)來指定每一個特性。小規模進行的話,這沒啥問題,但對於認真的程式碼,我們需要更好的東西。這就是類別(classes)的用武之地。藉由類別,我們可以更輕鬆地創建物件,而且我們可以建立出遵循相同設計藍圖(design blueprint)的物件,也就是說,我們可以使用類別來確保每個物件都有相同的特性,並包含相同的方法。而有了類別之後,我們就能寫出更簡潔的物件程式碼,而且在建立大量物件時,更不容易出錯。那麼,讓我們開始吧... 使用物件字面值建立物件 使用物件的慣例 介紹類別 如何定義類別 如何從類別建立出物件 類別的運作方式 讓我們加入一些方法 生產的時間到了! 基本的Car類別 使用extends實作Taxi類別 新增方法到Taxi類別 實作RocketCar類別 使用物件字面值來整理我們的建構器 改造Car建構器 存取器(accessor)特性 使用取值器(getter) 若無設值器(setter),取值器又有何用? 靜態特性和方法 計算我們的車子產量 【A 漏網之魚:十大遺珠之憾(我們沒講到的主題)】 我們已經涵蓋了很多內容,而你幾乎快讀完這本書了。我們會想念你的,但在讓你離開之前,如果沒有更多一點的準備工作,我們不放心把你送到外面的世界。我們不可能在這相對較小型的一章中包含你會需要知道的一切。事實上,我們原本確實放入了所有你需要知道的JavaScript程式設計知識(其他章節尚未提及的),方法是將字體縮小到0.00004。雖然全部都寫進去了,但是沒人有辦法讀。所以我們丟掉了大部分的內容,將最好的部分保留在這個「十大」附錄中。 #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)
資訊
工程
數學與統計學
機率與統計
自然科學
健康科學
地球與環境
建築、設計與藝術
人文與社會科學
教育
語言學習與考試
法律
會計與財務
大眾傳播
觀光與休閒餐旅
考試用書
研究方法
商業與管理
經濟學
心理學
生活
生活風格商品
參考書/測驗卷/輔材