遵循實踐,從頭構建實際應用。
深入解析不可多得的JavaScript高級主題。
為你構建21世紀的殺手級應用貢獻一臂之力
《圖靈程序設計叢書:JavaScript編程實戰》深入探討瞭如何基於JavaScript技術從頭開始創建真實的應用,共分為四個部分。第一部分介紹瞭實踐以及庫、框架與插件,為構建應用奠定堅實的基礎。第二部分討論瞭前端的構建,包括Backbone.js、JavaScript模闆,以及錶單處理和校驗的相關內容。第三部分涉及如何用Node.js編寫服務器端JavaScript。最後一部分挑戰程序的功能極限,介紹瞭如何構建實時應用程序、調整移動領域的Web程序、JavaScript圖形處理技術等內容。
《圖靈程序設計叢書:JavaScript編程實戰》適閤所有熟悉JavaScript並希望提升相關技術水平的開發人員和設計人員學習參考。
Jon Raasch Web,開發專傢。用戶體驗重度關注者,堅信隻要滿足瞭用戶的需求,商業目標就能隨之達成。除本書外,還著有Smashing WebKit和Smashing Mobile Web Development。現居住在美國俄勒岡州波特蘭市。Twitter賬號:jonraasch。個人網站:jonraasch.com。
吳海星,2001年畢業於南京理工大學。編程數載代碼不過十萬,翻譯幾年碼字不過百萬。項目不過十幾個,帶隊不到五十人。年過而立,惴惴不安,愈加發奮,孜孜求學,願憑綿薄之力,貢獻於IT社區。除此書外,還譯有《量化:大數據時代的企業管理》、《Java程序員修煉之道》。
第一部分 堅實的基礎
第1章 最佳實踐
1.1 鬆耦閤
1.1.1 緊耦閤的問題
1.1.2 鬆耦閤的優勢
1.2 JavaScript MVC和模闆
1.2.1 MVC
1.2.2 模闆
1.3 開發工具
1.3.1 WebKit開發人員工具
1.3.2 Weinre
1.3.3 版本控製
1.3.4 CSS預處理
1.4 測試
1.4.1 使用Grunt
1.4.2 使用QUnit
1.5 小結
1.6 補充資源
第2章 庫、框架與插件
2.1 選擇恰當的JavaScript庫
2.1.1 jQuery
2.1.2 Zepto
2.1.3 普通的DOM
2.2 使用框架
2.2.1 Bootstrap
2.2.2 jQuery UI
2.2.3 移動框架
2.3 其他腳本
2.3.1 Modernizr
2.3.2 HTML5 Shiv
2.4 HTML5樣闆
2.5 尋找jQuery插件
2.5.1 去哪裏(以及不要去哪裏)找
2.5.2 要找什麼--一個十項檢查列錶
2.6 小結
2.7 補充資源
第二部分 構建前端
第3章 Backbone.js
3.1 初識Backbone
3.1.1 Backbone是什麼
3.1.2 為什麼要用Backbone
3.1.3 Backbone基礎
3.1.4 什麼時候用Backbone
3.1.5 設置Backbone
3.2 Backbone中的模型
3.2.1 創建一個模型
3.2.2 創建計算屬性
3.2.3 設置默認值
3.2.4 使用初始化函數
3.2.5 使用Backbone事件
3.2.6 模型的校驗
3.3 使用Backbone中的集閤
3.3.1 創建集閤
3.3.2 創建集閤事件
3.4 理解Backbone視圖
3.4.1 創建視圖
3.4.2 使用渲染函數
3.4.3 使用Backbone中的視圖元素
3.4.4 使用嵌套視圖
3.5 數據的保存及獲取
3.5.1 與服務器上的模型同步
3.5.2 在Backbone中使用LocalStorage API
3.5.3 把集閤保存在服務器上
3.5.4 使用Backbone.sync
3.6 使用路由控製器
3.6.1 路由如何使用
3.6.2 設置路由控製器
3.6.3 PushState與Hashchange
3.7 再談事件
3.7.1 事件解綁定
3.7.2 手動觸發事件
3.7.3 綁定"this"
3.7.4 All事件
3.8 操作集閤
3.8.1 取齣集閤中的條目
3.8.2 集閤排序
3.9 小結
3.10 補充資源
第4章 使用JavaScript模闆
4.1 認識模闆
4.1.1 為什麼使用模闆
4.1.2 瞭解不同的模闆庫
4.1.3 做齣正確的選擇
4.2 使用Underscore模闆
4.2.1 Underscore模闆基礎知識
4.2.2 重溫模闆的最佳實踐
4.2.3 在模闆中使用JavaScript
4.3 在Backbone中使用模闆
4.3.1 不用模闆設置模型和視圖
4.3.2 用模闆渲染視圖
4.4 小結
4.5 補充資源
第5章 創建錶單
5.1 理解漸進式增強
5.1.1 漸進式增強方式
5.1.2 為什麼要漸進式增強
5.1.3 決定支持哪個環境
5.2 讓HTML5替你工作
5.2.1 HTML5的輸入控件類型
5.2.2 交互特性
5.3 給老瀏覽器用Polyfill
5.3.1 尋找第三方Polyfill
5.3.2 編寫自己的Polyfill
5.4 連接REST API
5.4.1 提交錶單
5.4.2 構建通用函數
5.5 Backbone中的錶單
5.5.1 設置錶單模型
5.5.2 設置錶單視圖
5.5.3 將錶單域保存到模型中
5.5.4 添加校驗
5.5.5 清理模闆
5.5.6 必填項
5.5.7 提交錶單
5.5.8 閤並代碼
5.6 小結
5.7 補充資源
第三部分 編寫服務器端JavaScript
第6章 Node.js簡介
6.1 為什麼是Node
6.1.1 在實時程序中使用Node
6.1.2 Node的工作機製
6.2 安裝Node
6.2.1 在Mac/Linux上安裝
6.2.2 在Windows上安裝
6.2.3 檢查安裝情況
6.3 Node入門
6.3.1 創建服務器
6.3.2 添加內容
6.3.3 打包
6.3.4 運行腳本
6.3.5 簡化腳本
6.3.6 使用Node REPL
6.4 Node模塊
6.4.1 引入模塊
6.4.2 外部模塊和NPM
6.4.3 尋找模塊
6.5 Node 模式
6.5.1 模塊和全局變量
6.5.2 異步模式
6.5.3 事件
6.5.4 子進程
6.6 小結
6.7 補充資源
第7章 Express框架
7.1 Express入門
7.1.1 安裝Express
7.1.2 創建Express程序
7.2 設置路由
7.2.1 已有路由
7.2.2 創建新的路由
7.2.3 POST、PUT和DELETE
7.3 渲染視圖
7.3.1 啓用Underscore模闆
7.3.2 創建視圖
7.4 處理錶單數據
7.4.1 創建POST路由
7.4.2 將反饋發給模闆
7.5 發封郵件
7.5.1 連到SMTP服務器上
7.5.2 構建Email消息
7.5.3 發送郵件
7.5.4 在結束之前
7.6 小結
7.7 補充資源
第8章 MongoDB
8.1 NoSQL數據庫有什麼好處
8.1.1 擴展能力
8.1.2 簡單性
8.2 MongoDB入門
8.2.1 安裝MongoDB
8.2.2 運行MongoDB
8.2.3 安裝MongoDB模塊
8.2.4 創建數據庫
8.3 MongoDB中的CRUD
8.3.1 創建集閤
8.3.2 讀取數據
8.3.3 更新數據
8.3.4 刪除數據
8.4 Mongoose
8.4.1 Mongoose入門
8.4.2 創建模型
8.4.3 讀取數據
8.5 數據庫上的其他選擇
8.6 小結
8.7 補充資源
第四部分 挑戰極限
第9章 用WebSockets構建實時程序
9.1 WebSockets的工作機製
9.1.1 輪詢的問題
9.1.2 WebSockets方案
9.2 Socket.IO入門
9.2.1 服務器上的Socket.IO
9.2.2 客戶端的Socket.IO
9.3 構建實時的聊天室
9.3.1 創建聊天室視圖
9.3.2 將消息提交給服務器
9.3.3 在服務器端處理消息
9.3.4 在客戶端顯示新消息
9.3.5 添加Backbone.js結構
9.3.6 添加用戶
9.3.7 添加時間戳
9.3.8 保存到MongoDB中
9.3.9 閤並代碼
9.4 小結
9.5 補充資源
第10章 進入移動領域
10.1 搭建移動App
10.1.1 檢測移動終端
10.1.2 設置移動端網站的樣式
10.1.3 移動端框架
10.2 集成觸屏
10.2.1 基本觸摸事件
10.2.2 復雜的觸摸手勢
10.3 Geolocation
10.3.1 找到用戶的位置
10.3.2 連接Google地圖
10.3.3 追蹤Geolocation的變化
10.4 電話號碼和短信
10.4.1 靜態的電話號碼和SMS鏈接
10.4.2 用JavaScript撥打電話和發送短信
10.5 PhoneGap
10.5.1 PhoneGap的優與劣
10.5.2 PhoneGap入門
10.5.3 連接相機
10.5.4 連接通訊錄
10.5.5 其他API
10.6 小結
10.7 補充資源
第11章 JavaScript圖形
11.1 畫布基礎
11.1.1 畫齣基本的形狀
11.1.2 讓畫布動起來
11.1.3 畫布中的鼠標事件
11.2 SVG基礎
11.2.1 讓SVG動起來
11.2.2 SVG鼠標事件
11.2.3 編碼SVG
11.3 Rapha?l.js
11.3.1 作畫路徑
11.3.2 畫麯綫
11.3.3 樣式
11.3.4 動畫
11.3.5 鼠標事件
11.4 用gRapha?l做圖錶
11.4.1 餅圖
11.4.2 柱狀圖
11.4.3 摺綫圖
11.5 帶WebGL的3D畫布
11.5.1 Three.js簡介
11.5.2 創建圖像紋理
11.5.3 3D動畫
11.5.4 添加鼠標事件
11.5.5 使用備選的2D畫布
11.6 CSS中的3D變換
11.7 小結
11.8 補充資源
第12章 推齣你的程序
12.1 性能檢查錶
12.1.1 重點在哪
12.1.2 資源管理
12.1.3 動畫優化
12.1.4 少做為妙
12.1.5 規避迴流
12.2 部署
12.2.1 把靜態資源部署在CDN上
12.2.2 把Node服務部署在EC2上
12.3 推齣
12.4 補充資源
附錄A 用LESS做CSS預處理
A.1 LESS簡介
A.1.1 預處理的好處
A.1.2 安裝LESS編譯器
A.1.3 在服務器上編譯
A.2 LESS的基礎知識
A.2.1 變量
A.2.2 操作符
A.2.3 嵌套
A.3 函數和Mixin
A.3.1 函數
A.3.2 Mixin
A.4 文件結構
A.4.1 使用Import
A.4.2 文件結構示例
A.4.3 定製結構
A.5 小結
A.6 補充資源
1.3.3 版本控製
如果你開發時不用版本控製工具,那我就不用跟你強調它的重要性瞭。不過我在每個項目中都會用到,即便是隻有我一個人做的微型項目。版本控製能追蹤代碼庫隨時問發生的變化。如果你能定期提交代碼,就能迴退到原來的任何一點上,甚至可以把某次提交中的修改閤並到其他提交點上。如果要跟其他開發人員協作,版本控製更是必不可少。不要試圖自己搞清楚誰改瞭哪個文件,讓版本控製工具替你跟蹤吧。 如果你和其他開發人員修改瞭同一個文件,版本控製工具可以將你們的改動閤並到一起。但偶爾也會發生衝突,比如你們改瞭同一行代碼。齣現這種情況時,版本控製工具可以讓你們手動閤並。不過即便你是獨自開發,我也會強烈建議你使用版本控製工具。使用版本控製工具之前,我總是會把當時不再使用的代碼注釋掉,怕我以後萬一還要用。現在如果再有需要,我隻要迴退那些修改就行瞭,這樣代碼庫比以前整潔多瞭。並且如果客戶對功能的需求發生瞭變化,我隻要用一行命令就能迴退代碼庫。 在各種各樣的版本控製係統中,我個人最喜歡Git。Git應用很廣,在選擇協作軟件時這一點很重要。更重要的是,Git是分布式版本控製係統,不是集中式的。這種版本控製有幾個優勢。首先,這樣每個用戶都有自己的存儲庫,以後可以閤並到主庫(或其他庫)中,因此提供瞭額外的版本層次。此外,它用起來更容易,因為你無需服務器就可以設置本地的分布式版本控製(可以以後再連到服務器上)。關於如何使用Git,有一本免費的電子書可以參閱——
1.3.4 CSS預處理
我不準備在本書中談論太多CSS,但程序裏肯定要用到樣式,所以你真的應該使用CSS預處理器。藉助SASS和LESS之類的CSS預處理器,你可以用更精巧的方式編寫CSS。它們提供瞭大量的腳本操作,最終都能編譯成靜態CSS文件。也就是說,你既能藉用動態腳本語言的力量,又能得到任何瀏覽器都可以識彆的標準CSS文件。
……
我一直以來都覺得,要真正掌握一門編程語言,光看書是不夠的,關鍵在於實踐。而《JavaScript編程實戰》這本書,恰恰就能滿足我這種“動手派”的學習需求。它不是那種隻會告訴你“怎麼做”,而是會告訴你“為什麼這樣做”。書中的很多章節,都圍繞著一些實際的開發場景展開,比如如何構建一個響應式的導航欄,如何實現一個簡單的圖片輪播效果,甚至是更復雜的,如何與後端API進行交互,處理數據,等等。我個人比較喜歡它在講解復雜概念時,會提供詳細的代碼示例,並且對每一行代碼都做瞭清晰的注釋。這對於我這種喜歡刨根 জিজ্ঞাসা(探究)的人來說,簡直是福音。我常常會在書上敲完代碼,然後自己嘗試去修改一些參數,看看會發生什麼變化,這種探索的過程,讓我對JavaScript的理解更加深入。而且,它還鼓勵讀者去思考,在實際項目中,有哪些可以改進的地方,或者說,有哪些替代的解決方案。
评分《JavaScript編程實戰》這本書,我拿到手的時候,就被它厚實的體積和沉甸甸的分量驚艷到瞭。翻開目錄,撲麵而來的都是那些我一直以來或多或少有所耳聞,但總覺得係統學習起來會很枯燥的知識點。比如,什麼作用域鏈、閉包、原型鏈這些概念,聽起來就頭大。我一直都是那種“夠用就好”的學習模式,對於那些深層次的原理,總覺得離我的實際開發需求有點遠,但內心裏又隱隱知道,如果想真正地提升自己,繞不開這些。這本書給我的感覺是,它並沒有直接把你丟進那些晦澀難懂的理論海洋,而是通過一係列精心設計的“實戰”案例,讓你在解決問題的過程中,不知不覺地去理解那些核心概念。我記得其中有一個章節,講的是如何優化前端性能,通過一些實際的代碼片段,展示瞭如何利用懶加載、代碼分割等技術來提升頁麵的加載速度。當時我就是跟著書上的例子一步步操作的,雖然過程中遇到瞭一些小問題,但最終看到效果的時候,那種成就感是無法言喻的。這本書的優點在於,它能夠把那些看似抽象的原理,轉化為看得見摸得著的實踐,讓你在動手實踐中,建立起對JavaScript更深層次的理解。
评分剛開始接觸《JavaScript編程實戰》這本書時,我抱著一種“試試看”的心態,畢竟市麵上的JavaScript書籍五花八門,質量參差不齊。然而,這本書很快就讓我颳目相看。它最吸引我的地方在於,它並沒有將JavaScript的學習過程變成一場枯燥的理論考試,而是將它融入到瞭一係列引人入勝的“編程實戰”中。我特彆喜歡它在講解麵嚮對象編程時,不僅僅是停留在類和對象的概念上,而是通過構建一個簡單的遊戲引擎來演示如何運用這些概念。這種“玩中學”的方式,讓我覺得學習過程充滿瞭樂趣。而且,書中還提供瞭一些非常實用的技巧,比如如何進行代碼調試,如何優化代碼性能等等,這些都是在實際開發中非常重要的技能。我感覺,這本書就像一個經驗豐富的導師,循序漸進地引導我,讓我能夠更自信地應對各種JavaScript編程挑戰。
评分我是在一個偶然的機會下接觸到《JavaScript編程實戰》這本書的,當時我正在尋找一本能夠幫助我提升JavaScript編程技能的書籍。這本書給我最深的印象就是它的“接地氣”。它沒有使用過於深奧的語言,而是用一種通俗易懂的方式,將復雜的JavaScript概念一一呈現。我尤其喜歡它在講解異步編程時,並沒有直接上來就介紹Promise、async/await,而是先通過一些實際的例子,比如模擬網絡請求,讓讀者體會到異步操作帶來的挑戰,然後再逐步引齣解決方案。這種方式讓我感覺,書中的知識點都是為瞭解決實際問題而存在的,而不是為瞭理論而理論。而且,這本書的排版也很舒服,代碼塊清晰,注釋也很到位,閱讀起來不會有太大壓力。我感覺,這本書非常適閤那些有一定JavaScript基礎,想要進一步提升自己,或者想係統學習JavaScript高級特性的讀者。
评分說實話,我一開始對這本書的期待並不算太高,畢竟市麵上的JavaScript書籍實在太多瞭,很多都是泛泛而談,或者隻是一些零散知識點的堆砌。但《JavaScript編程實戰》給我帶來的驚喜,遠超我的預期。它不像一些教材那樣,上來就給你灌輸一大堆概念,而是非常注重“學以緻用”。我特彆喜歡它在講解一些高級特性時,會先給齣一些實際的應用場景,然後逐步深入地解釋背後的原理。例如,在講到異步編程時,它沒有直接去解釋Promise的細節,而是先拋齣瞭一個常見的網絡請求場景,比如需要同時發起多個請求,並且在所有請求完成後再進行下一步操作。然後,它會一步步地引導讀者思考,在沒有Promise之前,我們可能需要依賴迴調函數,但迴調函數容易陷入“迴調地獄”,這時,Promise就應運而生,它提供瞭一種更優雅的方式來處理異步操作。這種循序漸進、由淺入深的學習方式,讓我感覺非常受用,也更容易將學到的知識融會貫通。
评分长度在5-200个字之间 填写您对此商品的使用心得,例如该商品或某功能为您带来的帮助,或使用过程中遇到的问题等。最多可输入200字
评分再建立一个临时数组,从N中读取K个数,全排序,然后依次读入其余N - K个数进来和第K名比较,大于K的值则插入到合适位置,只待循环完毕返回K位置元素。平均复杂度O(KLogK + (N - K))
评分还没来得及看,随便翻了一下,不错
评分还没来得及看,随便翻了一下,不错
评分深:对一些JavaScript相关的高级主题进行深入解析,这些主题是你在其他JS开发的书中通常难以找到的。
评分总体上难度适中,可读性不错,不适合合入门的
评分本书是一幅构建现代Web应用程序的路线图,介绍了你将面对的常见问题的解决方案,还有可以处理任何事情的通用最佳实践。本书面向高级前端开发人员,以及对Node感兴趣并有扎实的JavaScript基础的后端开发人员。JavaScript达到中等水平的开发人员应该也能看懂书中的概念和示例(最终他们的技能将会有长足的进步)。尽管你应该充分理解客户端JavaScript,但因为第三部分是从最基础的内容开始的,所以即便你没有服务器端JavaScript的经验,也能理解Node相关的内容。
评分很实用的书!!!!!!!!!
评分逐字逐句地看完这本书以后,我的心久久不能平静,震撼啊,震撼!好书啊,好书!为什么会有如此好的书! 在看完这本书以后,我没有立即来评论,因为生怕我庸俗不堪的回复会玷污了这本世间少有的书。 能够在如此精彩的书后面留下自己的名字是多么骄傲的一件事啊 !请原谅我的自私!我知道无论用多么华丽的辞藻来形容这本书的精彩程度都是不够的,都是虚伪的,所以我只想说一句:这本书太好看了!我愿意一辈子不断地看下去!此书构思新颖,题材独具匠心,段落清晰,情节诡异,跌宕起伏,主线分明,引人入胜,平淡中显示出不凡的文学功底,可谓是字字珠玑,句句经典,是我辈应当学习之典范。就商业猎奇的角度而言,这篇书不算太成功,但它的实际意义却远远大于成功本身。正所谓:“一马奔腾,射雕引弓,天地都在我心中!”真不愧为游记界新一代的开山老怪!本来我已经对这个类别失望了,觉得这个类别没有前途了,心里充满了悲哀。但是看了作者这本书,我告诉自己这本书是一定要评论的!这是百年难得一见的好书啊!苍天有眼啊,让我在有生之年得以观得如此精彩绝伦的书!作者要继续努力啊!此书,就好比黑暗中刺裂夜空的闪电,又好比撕开乌云的阳光,一瞬间就让我如饮甘露,让我明白了永恒的真理在这个世界上是真实存在着的。 只有这样具备广阔胸怀和完整知识体系的人,才能作为这真理的唯一引言者。看了此书,让我陷入了严肃的思考中,我认为,如果不把此推荐给广大读者,就是对真理的一种背叛,就是对谬论的极大妥协。因此,我决定义无返顾的强推!真知灼见啊!此书实在是一语中的。子曰:三人行而必有我师焉。斯言善哉。不知不觉读书这么多年,好的书坏的书都看过了,看多了。渐渐的也觉得没什么意思了。 渐渐觉得自己已经达到奋斗的顶峰了。可是,第一眼看到这本书的时候,我的眼前竟然感觉一亮!仿佛看到了倾城倾国的美人,正轻摇柳步款款而行。正好似这本书,语态端正,论证从容。好书啊!只有那种真理在握,洞视这个世界真实本质的人,才能显示出这样惊人的笔力。在日益苍白肤浅的新书堆里,我从此书中不但看到了真理,更加看到了新书的希望。为表达我对的敬意,也是为了向作者学习。我决心要把这本书评论、强推!这本书实在是写得太好了。文笔流畅,修辞得体,深得魏晋诸朝遗风,更将唐风宋骨发扬得入木三分,能在有生之年看见的这本书。实在是我三生之幸啊。看完的这本书之后,我竟感发出一种无以名之的悲痛感,这么好的书,我内心的那种激动才逐渐平复下来。可是我立刻想到,这么好的书,倘若别人看不到,那么不是浪费作者的心血吗?经过痛苦的思想斗争,我终于下定决心,我要把这个书强推,使劲推!推到所有人都看到为止!看完,我的心情竟是久久不能平复,正如老子所云:大音希声,大象无形。我现在终于明白我缺乏的是什么了,正是那种对真理的执着追求和那种对理想的艰苦实践所产生的厚重感。面对此书,我震惊得几乎不能动弹了,那种裂纸欲出的大手笔,竟使我忍不住一次次的翻开这本书,久久不忍合上。
本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度,google,bing,sogou 等
© 2025 tushu.tinynews.org All Rights Reserved. 求知書站 版权所有