JavaScript編程精解

出版時(shí)間:2012-10-1  出版社:機(jī)械工業(yè)出版社華章公司  作者:Marijn Haverbeke  頁(yè)數(shù):162  譯者:徐濤  
Tag標(biāo)簽:無(wú)  

前言

前言20世紀(jì)70年代,業(yè)界首次推出個(gè)人計(jì)算機(jī)時(shí),大多數(shù)計(jì)算機(jī)都內(nèi)置一種簡(jiǎn)單的編程語(yǔ)言—通常是BASIC的變體,人與計(jì)算機(jī)之間的互動(dòng)需要通過(guò)這種語(yǔ)言實(shí)現(xiàn)。這意味著,對(duì)天生喜歡鉆研技術(shù)的人來(lái)說(shuō),從單純使用計(jì)算機(jī)到編程的過(guò)渡非常容易?,F(xiàn)在的計(jì)算機(jī)相比20世紀(jì)70年代的功能更加強(qiáng)大,價(jià)格也更加便宜,軟件接口呈現(xiàn)的是使用鼠標(biāo)操作的靈活圖形界面,而不是語(yǔ)言界面。這使計(jì)算機(jī)更容易使用,總的來(lái)說(shuō),這是一個(gè)巨大的進(jìn)步。然而,這也在計(jì)算機(jī)用戶(hù)與編程世界之間制造了一個(gè)障礙—業(yè)余愛(ài)好者必須積極尋找自己的編程環(huán)境,而不是一打開(kāi)電腦就呈現(xiàn)的環(huán)境。實(shí)質(zhì)上,計(jì)算機(jī)系統(tǒng)仍然被各種編程語(yǔ)言控制。大多數(shù)的編程語(yǔ)言都比早期個(gè)人計(jì)算機(jī)中的BASIC語(yǔ)言更加先進(jìn)。例如,本書(shū)的主題—JavaScript語(yǔ)言,就存在于每一款主流Web瀏覽器中。關(guān)于編程不憤不啟,不悱不發(fā)。舉一隅不以三隅反,則不復(fù)也?!鬃颖緯?shū)除了介紹JavaScript外,也致力于介紹編程的基本原理。事實(shí)上,這種編程還是比較難的。編程的基本規(guī)則通常都簡(jiǎn)單明了,但計(jì)算機(jī)程序構(gòu)建在這些基本規(guī)則之上后,會(huì)變得很復(fù)雜,產(chǎn)生了其自身的規(guī)則和復(fù)雜性。正因?yàn)槿绱耍幊滩⒉皇悄敲春?jiǎn)單或可預(yù)測(cè)的。正如計(jì)算機(jī)科學(xué)的鼻祖高德納(Donald Knuth)所說(shuō),編程是一門(mén)藝術(shù),而不是一門(mén)科學(xué)。要想從本書(shū)里獲取最大收獲,不能僅僅依靠被動(dòng)閱讀。一定要集中注意力去理解示例代碼,只有確定自己真正理解了前面的內(nèi)容,才能繼續(xù)往下閱讀。程序員對(duì)其創(chuàng)造的宇宙負(fù)全部責(zé)任,因?yàn)樗麄兪莿?chuàng)造者。以計(jì)算機(jī)程序的形式,可創(chuàng)造出無(wú)限復(fù)雜的宇宙。——Joseph Weizenbaum,《Computer Power and Human Reason》一個(gè)程序包含很多含義。它是程序員敲出的一串字符,是計(jì)算機(jī)運(yùn)行的指向力,是計(jì)算機(jī)內(nèi)存中的數(shù)據(jù),還控制同一個(gè)內(nèi)存上的執(zhí)行動(dòng)作。僅使用熟悉的類(lèi)推法比較程序與對(duì)象往往還不夠,因?yàn)閺谋砻嫔峡催m合該操作的是機(jī)器。機(jī)械表的齒輪巧妙地嚙合在一起,如果表的制造者技術(shù)很棒,它就能夠連續(xù)多年準(zhǔn)確地顯示時(shí)間。計(jì)算機(jī)程序的元素也以類(lèi)似的方式組合在一起,如果程序員知道自己在做什么,那么這個(gè)程序就能夠正常運(yùn)行而不會(huì)崩潰。計(jì)算機(jī)作為這些無(wú)形機(jī)器的載體而存在。計(jì)算機(jī)本身只會(huì)做簡(jiǎn)單直接的工作。它們之所以如此有用,是因?yàn)樗鼈兡軌蛞泽@人的速度完成這些工作。程序可以巧妙地把許多簡(jiǎn)單動(dòng)作結(jié)合起來(lái),去完成非常復(fù)雜的工作。對(duì)有些人來(lái)說(shuō),編寫(xiě)計(jì)算機(jī)程序是一種很有趣的游戲。程序是思想的構(gòu)筑,它零成本、零重量,在我們的敲打中不斷發(fā)展。如果我們不細(xì)心,它的規(guī)模和復(fù)雜性將失去控制,甚至創(chuàng)造者也會(huì)感到混亂。這就是編程的主要問(wèn)題:控制好程序。程序在工作時(shí)是很不可思議的,編程的藝術(shù)就是控制復(fù)雜性的技巧,好的程序其復(fù)雜性也會(huì)降低。如今,很多程序員認(rèn)為只要在程序中使用少量易于理解的技術(shù),就可以最有效地降低復(fù)雜性。他們制定了嚴(yán)格的編程規(guī)則(最佳實(shí)踐)及書(shū)寫(xiě)格式,那些破壞規(guī)則的人被稱(chēng)為“差勁”的程序員。豐富多彩的編程世界里包含了太多的復(fù)雜性!讓我們努力將程序變得簡(jiǎn)單和可預(yù)測(cè),并為所有奇妙和優(yōu)美的程序制定禁忌規(guī)則。編程技術(shù)的前景是廣闊的,其多樣性使人著迷,它的世界仍有很多未被探索的部分。編程過(guò)程中有很多陷阱和圈套,缺乏經(jīng)驗(yàn)的程序員會(huì)犯各類(lèi)糟糕的錯(cuò)誤,告誡我們需要謹(jǐn)慎,并保持頭腦清醒。學(xué)習(xí)編程時(shí)總是需要探索新的挑戰(zhàn)、新的領(lǐng)域,拒絕不斷探索的程序員必定會(huì)停滯不前、忘記編程的快樂(lè)、并失去編程的意志(或成為管理人員)。語(yǔ)言為何很重要在計(jì)算機(jī)誕生初期并沒(méi)有編程語(yǔ)言。程序看起來(lái)就像這樣:這是一個(gè)從1加到10并輸出結(jié)果(1 + 2 +…+ 10 = 55)的程序。它可以在一個(gè)非常簡(jiǎn)單、理想化的計(jì)算機(jī)上運(yùn)行。為早期的計(jì)算機(jī)編制程序時(shí),必須在正確的位置設(shè)置一排排的開(kāi)關(guān)或者在紙帶上打上一系列有規(guī)律的孔點(diǎn),這樣才能將程序傳遞給計(jì)算機(jī)??梢韵胂筮@個(gè)過(guò)程有多么繁瑣和易出錯(cuò)。即使編寫(xiě)簡(jiǎn)單的程序也需要使用很多腦力和規(guī)則,編寫(xiě)復(fù)雜的程序更是不可想象。當(dāng)然,手動(dòng)輸入這些二進(jìn)制位(即以上這些1和0的統(tǒng)稱(chēng))的神秘組合,讓程序員感覺(jué)自己像巫師一樣擁有強(qiáng)大的魔力,而且還能夠獲得工作滿(mǎn)足感,因此這點(diǎn)還是很值得的。程序的每一行都包含一條單獨(dú)的指令??梢杂谜Z(yǔ)言這樣描述:1)將數(shù)字0保存在第0個(gè)存儲(chǔ)單元;2)將數(shù)字1保存在第1個(gè)存儲(chǔ)單元;3)將第1個(gè)存儲(chǔ)單元的值保存在第2個(gè)存儲(chǔ)單元;4)將第2個(gè)存儲(chǔ)單元中的值減去數(shù)字11;5)如果第2個(gè)存儲(chǔ)單元中的值是數(shù)字0,則繼續(xù)執(zhí)行指令9;6)將第1個(gè)存儲(chǔ)單元的值添加至第0個(gè)存儲(chǔ)單元;7)將數(shù)字1添加至第1個(gè)存儲(chǔ)單元;8)繼續(xù)執(zhí)行指令3;9)輸出第0個(gè)存儲(chǔ)單元的值。雖然這比二進(jìn)制位易讀,但仍然令人不快。用名稱(chēng)代替指令和存儲(chǔ)單元的數(shù)字或許更有幫助。在這里不難看出程序是如何運(yùn)行的。前兩行代碼為兩個(gè)存儲(chǔ)單元賦予初始值:total用于創(chuàng)建計(jì)算的結(jié)果,count記錄當(dāng)前看到的數(shù)字。使用compare的行可能是最令人費(fèi)解的地方。該程序的目的是判斷count是否等于11,從而確定能否停止運(yùn)行。由于該機(jī)器相當(dāng)原始,它只能測(cè)試一個(gè)數(shù)字是否為零,并在此基礎(chǔ)上做出判斷(跳轉(zhuǎn)),因此它使用標(biāo)記compare的存儲(chǔ)單元來(lái)計(jì)算count的值,即11,并在該值的基礎(chǔ)上做出判斷。后面兩行代碼將count的值添加到結(jié)果total上,當(dāng)程序判斷count不是11時(shí),為count加1。下面是用JavaScript編寫(xiě)的有同樣效果的程序。這段程序有了更多的改進(jìn)。最重要的是,不再需要指定程序來(lái)回轉(zhuǎn)換的方式,while這個(gè)神奇的單詞會(huì)幫助解決這個(gè)問(wèn)題。只要滿(mǎn)足給定的條件:count

內(nèi)容概要

如果你只想閱讀一本關(guān)于JavaScript的圖書(shū),那么本書(shū)應(yīng)該是你的首選。本書(shū)由世界級(jí)JavaScript程序員撰寫(xiě),JavaScript之父和多位JavaScript專(zhuān)家鼎力推薦。本書(shū)適合作為系統(tǒng)學(xué)習(xí)JavaScript的參考書(shū),它在寫(xiě)作思路上幾乎與現(xiàn)有的所有同類(lèi)書(shū)都不同,打破常規(guī),將編程原理與運(yùn)用規(guī)則完美地結(jié)合在一起,而且將所有知識(shí)點(diǎn)與一個(gè)又一個(gè)經(jīng)典的編程故事融合在一起,讀者可以在輕松的游戲式開(kāi)發(fā)中學(xué)會(huì)JavaScript程序設(shè)計(jì),趣味性十足,可操作性極強(qiáng)。
全書(shū)一共12章:第1~3章介紹了JavaScript的基本語(yǔ)法,旨在幫助讀者編寫(xiě)出正確的JavaScript程序,包含數(shù)字、算術(shù)、字符串、變量、程序結(jié)構(gòu)、控制流程、類(lèi)型、函數(shù)、對(duì)象和數(shù)組等最基礎(chǔ)和最核心的內(nèi)容;第4~7章講解了JavaScript編程中的高級(jí)技術(shù),目的是幫助讀者編寫(xiě)更復(fù)雜的JavaScript程序,主要涉及錯(cuò)誤處理、函數(shù)式編程、面向?qū)ο缶幊獭⒛K化等重要內(nèi)容;第8~12章則將重心轉(zhuǎn)移到JavaScript環(huán)境中可用的工具上,分別詳細(xì)講解了正則表達(dá)式、與Web編程相關(guān)的知識(shí)、文檔對(duì)象模型、瀏覽器事件和HTTP請(qǐng)求等。

作者簡(jiǎn)介

Marijn
Haverbeke 世界級(jí)JavaScript程序員,通曉多種編程語(yǔ)言,在Web開(kāi)發(fā)方面積累了豐富的經(jīng)驗(yàn),在JavaScript領(lǐng)域頗有影響力。如今,他專(zhuān)注于動(dòng)態(tài)語(yǔ)言下的數(shù)據(jù)庫(kù)系統(tǒng)的研究和Web
API的設(shè)計(jì)。此外,他創(chuàng)建并維護(hù)著多個(gè)流行的開(kāi)源項(xiàng)目。

書(shū)籍目錄

對(duì)本書(shū)的贊譽(yù)
譯者序
前言
第1章 JavaScript基礎(chǔ):值、變量、控制流程
1.1 值
1.1.1 數(shù)字
1.1.2 算術(shù)
1.1.3 字符串
1.1.4 一元操作符
1.1.5 布爾值、比較和布爾邏輯
1.1.6 表達(dá)式與語(yǔ)句
1.2 變量
1.3 環(huán)境
1.3.1 函數(shù)
1.3.2 prompt和confirm
1.3.3 print函數(shù)
1.3.4 修改環(huán)境
1.4 程序結(jié)構(gòu)
1.4.1 條件執(zhí)行
1.4.2 while循環(huán)與do循環(huán)
1.4.3 縮進(jìn)代碼
1.4.4 for循環(huán)
1.4.5 跳出循環(huán)
1.4.6 更新變量簡(jiǎn)便法
1.4.7 使用switch進(jìn)行調(diào)度
1.4.8 大小寫(xiě)
1.4.9 注釋
1.5 進(jìn)一步認(rèn)識(shí)類(lèi)型
1.5.1 Undefined值
1.5.2 自動(dòng)類(lèi)型轉(zhuǎn)換
1.5.3 自動(dòng)類(lèi)型轉(zhuǎn)換的風(fēng)險(xiǎn)
1.5.4 進(jìn)一步了解&&和||
第2章 函數(shù)
2.1 剖析函數(shù)定義
2.1.1 定義順序
2.1.2 局部變量
2.1.3 嵌套作用域
2.1.4 棧
2.1.5 函數(shù)值
2.1.6 閉包
2.1.7 可選參數(shù)
2.2 技巧
2.2.1 避免重復(fù)
2.2.2 純函數(shù)
2.2.3 遞歸
第3章 數(shù)據(jù)結(jié)構(gòu):對(duì)象與數(shù)組
3.1 問(wèn)題:Emily姨媽家的貓
3.2 基本數(shù)據(jù)結(jié)構(gòu)
3.2.1 屬性
3.2.2 對(duì)象值
3.2.3 對(duì)象即集合
3.2.4 易變性
3.2.5 對(duì)象即集合:數(shù)組
3.2.6 方法
3.3 解決關(guān)于Emily姨媽家貓的問(wèn)題
3.3.1 分離段落
3.3.2 找出相關(guān)段落
3.3.3 提取貓的名字
3.3.4 完整算法
3.3.5 清理代碼
3.3.6 日期表示
3.3.7 日期提取
3.3.8 收集更多信息
3.3.9 數(shù)據(jù)表示
3.4 更多理論
3.4.1 arguments對(duì)象
3.4.2 完成掃尾工作
3.4.3 Math對(duì)象
3.4.4 可枚舉屬性
第4章 錯(cuò)誤處理
4.1 問(wèn)題類(lèi)型
4.1.1 程序員錯(cuò)誤
4.1.2 運(yùn)行時(shí)錯(cuò)誤
4.2 處理錯(cuò)誤
4.2.1 返回特殊值
4.2.2 異常
4.2.3 異常之后的錯(cuò)誤清除
4.2.4 Error對(duì)象
4.2.5 未處理的異常
4.2.6 選擇性Catch
4.3 自動(dòng)化測(cè)試
第5章 函數(shù)式編程
5.1 抽象
5.2 高階函數(shù)
5.2.1 修改函數(shù)
5.2.2 歸約函數(shù)
5.2.3 映射數(shù)組
5.3 隱士的悲慘故事
5.3.1 HTML
5.3.2 隱士的文本文件
5.3.3 找出段落
5.3.4 強(qiáng)調(diào)與腳注
5.3.5 移動(dòng)腳注
5.3.6 生成HTML
5.3.7 轉(zhuǎn)化隱士的書(shū)
5.4 其他函數(shù)技巧
5.4.1 操作符函數(shù)
5.4.2 分布應(yīng)用
5.4.3 組合
第6章 面向?qū)ο缶幊?br />6.1 對(duì)象
6.1.1 定義方法
6.1.2 構(gòu)造函數(shù)
6.1.3 從原型中構(gòu)建
6.1.4 構(gòu)造函數(shù)與原型
6.1.5 原型污染
6.1.6 對(duì)象即詞典
6.1.7 指定接口
6.2 構(gòu)建生態(tài)系統(tǒng)模擬
6.2.1 定義生態(tài)圈
6.2.2 空間里的點(diǎn)
6.2.3 呈現(xiàn)網(wǎng)格
6.2.4 昆蟲(chóng)的編程接口
6.2.5 生態(tài)圈對(duì)象
6.2.6 this及其作用域
6.2.7 有活力的生命
6.2.8 昆蟲(chóng)移動(dòng)
6.2.9 更多生命形式
6.2.10 多態(tài)性
6.3 更逼真的模擬生態(tài)系統(tǒng)
6.3.1 繼承
6.3.2 記錄能量
6.3.3 添加植物
6.3.4 食草動(dòng)物
6.3.5 為它帶來(lái)生命
6.3.6 人工愚蠢
6.4 原型繼承
6.4.1 類(lèi)型定義工具
6.4.2 類(lèi)型原型
6.4.3 對(duì)象的世界
6.4.4 instanceof操作符
6.4.5 混合類(lèi)型
第7章 模塊化
7.1 模塊
7.1.1 生態(tài)圈例子
7.1.2  模塊文件化
7.2 模塊的形態(tài)
7.2.1 函數(shù)作為局部命名空間
7.2.2 模塊對(duì)象
7.3 接口設(shè)計(jì)
7.3.1 可預(yù)見(jiàn)性
7.3.2 可組合性
7.3.3 分層接口
7.3.4 參數(shù)對(duì)象
7.4 JS庫(kù)
第8章 正則表達(dá)式
8.1 語(yǔ)法
8.1.1 匹配字符集
8.1.2 匹配單詞和字符邊界
8.1.3 重復(fù)模式
8.1.4 子表達(dá)式分組
8.1.5 多選一
8.2 匹配與替換
8.2.1 匹配方法
8.2.2 正則表達(dá)式和替換方法
8.2.3 動(dòng)態(tài)創(chuàng)建RegExp 對(duì)象
8.3 解析.ini文件
8.4 結(jié)論
第9章 Web編程:速成課
9.1 互聯(lián)網(wǎng)
9.1.1 URL網(wǎng)址
9.1.2 服務(wù)器端編程
9.1.3 客戶(hù)端編程
9.2  Web腳本基礎(chǔ)知識(shí)
9.2.1 windows對(duì)象
9.2.2 document對(duì)象
9.2.3 計(jì)時(shí)器
9.2.4 表單
9.2.5 表單腳本化
9.2.6 自動(dòng)焦點(diǎn)
9.3 瀏覽器非兼容性
9.4 延伸閱讀
第10章 文檔對(duì)象模型
10.1 DOM元素
10.1.1 節(jié)點(diǎn)鏈接
10.1.2 節(jié)點(diǎn)類(lèi)型
10.1.3 innerHTML屬性
10.1.4 查找節(jié)點(diǎn)
10.1.5 創(chuàng)建節(jié)點(diǎn)
10.1.6 節(jié)點(diǎn)創(chuàng)建輔助函數(shù)
10.1.7 移動(dòng)節(jié)點(diǎn)
10.1.8 print實(shí)現(xiàn)
10.2 樣式表
10.2.1 樣式屬性
10.2.2 隱藏節(jié)點(diǎn)
10.2.3 定位
10.2.4 控制節(jié)點(diǎn)大小
10.3 警示語(yǔ)
第11章 瀏覽器事件
11.1 事件句柄
11.1.1 注冊(cè)事件句柄
11.1.2 事件對(duì)象
11.1.3 鼠標(biāo)相關(guān)事件類(lèi)型
11.1.4 鍵盤(pán)事件
11.1.5 停止事件
11.1.6 事件對(duì)象正規(guī)化
11.1.7 跟蹤焦點(diǎn)
11.1.8 表單事件
11.1.9 window事件
11.2 示例:實(shí)現(xiàn)推箱子
11.2.1 等級(jí)輸入格式
11.2.2 程序設(shè)計(jì)
11.2.3 游戲板展示
11.2.4  控制器對(duì)象
第12章 HTTP請(qǐng)求
12.1 HTTP協(xié)議
12.2 XMLHttpRequest API
12.2.1 創(chuàng)建請(qǐng)求對(duì)象
12.2.2 簡(jiǎn)單的請(qǐng)求
12.2.3 發(fā)送異步請(qǐng)求
12.2.4 獲取XML數(shù)據(jù)
12.2.5 讀取JSON數(shù)據(jù)
12.2.6  基本的請(qǐng)求包裝
12.3 學(xué)習(xí)HTTP

章節(jié)摘錄

版權(quán)頁(yè):   插圖:   應(yīng)用于模擬環(huán)境中時(shí),這種新動(dòng)物(Clever Lichen Eater)比之前的簡(jiǎn)單同類(lèi)動(dòng)物(Lichen Eater)活得要長(zhǎng)久。如果給定一個(gè)足夠大的生活空間,部分環(huán)境食物充足,部分環(huán)境食物不足,而不是每個(gè)地方都一樣,那么這個(gè)生態(tài)系統(tǒng)似乎可以保持穩(wěn)定。 6.4原型繼承 整個(gè)生態(tài)圈應(yīng)該為我們?cè)趯?shí)際程序中如何使用對(duì)象提供一些啟發(fā)。本章剩余部分將針對(duì)Java Script里的繼承和繼承相關(guān)的問(wèn)題做更深入的講解。 首先,來(lái)復(fù)習(xí)一些理論。我們經(jīng)常聽(tīng)到一些學(xué)習(xí)面向?qū)ο缶幊痰膶W(xué)生討論繼承的正確和錯(cuò)誤使用,這些談話(huà)通常很冗長(zhǎng)也很精細(xì)。重點(diǎn)要記?。豪^承歸根結(jié)底只是一種使程序員可以偷懶的技巧(這里使用“偷懶”是最貼切的說(shuō)法),可以編寫(xiě)更少的代碼。因此,繼承的使用是否正確的問(wèn)題可以歸結(jié)為代碼是否正常工作以及如何避免不必要重復(fù)工作的問(wèn)題。盡管如此,這些學(xué)生采用的原則為我們思考繼承相關(guān)的內(nèi)容提供了很好的途徑。 繼承是創(chuàng)建新類(lèi)型對(duì)象——子類(lèi)型(subtype),子類(lèi)型基于父類(lèi)型(supertype)。子類(lèi)型擁有父類(lèi)型所有的屬性和方法(從父類(lèi)型繼承得到),然后修改其中的部分內(nèi)容或者添加新的內(nèi)容。繼承最好在子類(lèi)型模型可以被視為父類(lèi)型對(duì)象的時(shí)候使用。 因此,鋼琴類(lèi)型(Piano)可以是樂(lè)器類(lèi)型(Instrument)的子類(lèi)型,因?yàn)殇撉偈且环N樂(lè)器。鋼琴有一組鋼琴鍵,我們可能想讓鋼琴作為Array的子類(lèi)型,但鋼琴不是數(shù)組,像數(shù)組一樣實(shí)現(xiàn)它一定會(huì)導(dǎo)致各種各樣的愚蠢錯(cuò)誤。例如,鋼琴也有踏板,為什么piano[0]給出是第一個(gè)鍵,而不是第一個(gè)踏板呢?實(shí)際情況是,鋼琴有鋼琴鍵也有踏板,因此最好給piano對(duì)象一個(gè)屬性keys(鋼琴鍵),再給一個(gè)屬性pedals(踏板),兩者都擁有數(shù)組。 也可以讓一個(gè)子類(lèi)型作為另外一個(gè)子類(lèi)型的父類(lèi)型。有些問(wèn)題最好的解決方法就是構(gòu)建一個(gè)復(fù)雜的類(lèi)型家族樹(shù)。必須注意不要有太多繼承。繼承有自己的組合代碼方式,過(guò)度使用會(huì)使代碼之間的銜接混亂,并且很難修改。 6.4.1類(lèi)型定義工具 使用new關(guān)鍵字和構(gòu)造函數(shù)的prototype屬性都是定義類(lèi)型的特定方式,這些是我們到目前為止一直使用的。對(duì)于簡(jiǎn)單的對(duì)象(比如生態(tài)圈生物),這種方式是非常有效的??墒?,當(dāng)程序過(guò)度使用繼承時(shí),這種創(chuàng)建對(duì)象的方法很快就顯得笨拙了。

媒體關(guān)注與評(píng)論

編程原理與運(yùn)用規(guī)則的簡(jiǎn)練、完美融合。我喜歡游戲式的程序開(kāi)發(fā)教程。本書(shū)再次點(diǎn)燃了我學(xué)習(xí)編程的熱情。對(duì)了,是JavaScript!——BrendanEich,JavaScript之父因?yàn)檫@本書(shū),我成為了更棒的架構(gòu)師、作家、咨詢(xún)師和開(kāi)發(fā)者?!狝ngusCroll,Twitter開(kāi)發(fā)者如果你決定只買(mǎi)一本有關(guān)JavaScript的書(shū),那么就應(yīng)是MarijnHaverbeke的這本書(shū)。——JoeydeVilla,GlobalNerdy本書(shū)不僅是學(xué)習(xí)JavaScript最棒的教材之一,也是通過(guò)學(xué)習(xí)JavaScript進(jìn)而學(xué)習(xí)現(xiàn)代編程的優(yōu)秀圖書(shū)。當(dāng)有人問(wèn)我如何學(xué)好JavaScript時(shí),我會(huì)推薦這本書(shū)?!狢hrisWilliams,美國(guó)JSConf組織者我讀過(guò)的最棒的JavaScript書(shū)籍之一?!猂eyBango,微軟Client-Web社區(qū)項(xiàng)目經(jīng)理和jQuery團(tuán)隊(duì)成員這本書(shū)不僅是一本非常不錯(cuò)的JavaScript指導(dǎo)書(shū),而且是一本很棒的編程指導(dǎo)書(shū)?!狟enNadel,Epicenter咨詢(xún)公司首席軟件工程師真是本好書(shū)?!狣esignShack這本書(shū)對(duì)編程基本原理的詳述以及對(duì)棧和環(huán)境等概念的解釋非常到位。注重細(xì)節(jié)使本書(shū)從其他的JavaScript書(shū)中脫穎而出?!狣esignorati學(xué)習(xí)JavaScript的好書(shū)?!狢raigBuckler,OptimalWorksWebDesign公司

編輯推薦

《JavaScript編程精解》編輯推薦:世界級(jí)JavaScript程序員力作,JavaScript之父Brendan Eich高度評(píng)價(jià)并強(qiáng)力推薦。JavaScript編程原理與運(yùn)用規(guī)則完美融合,讀者將在游戲式開(kāi)發(fā)中學(xué)會(huì)JavaScript程序設(shè)計(jì),是系統(tǒng)學(xué)習(xí)JavaScript程序設(shè)計(jì)的首選之作。

名人推薦

編程原理與運(yùn)用規(guī)則的簡(jiǎn)練、完美融合。我喜歡游戲式的程序開(kāi)發(fā)教程。本書(shū)再次點(diǎn)燃了我學(xué)習(xí)編程的熱情。對(duì)了,是JavaScript!——Brendan Eich,JavaScript之父因?yàn)檫@本書(shū),我成為了更棒的架構(gòu)師、作家、咨詢(xún)師和開(kāi)發(fā)者?!狝ngus Croll,Twitter開(kāi)發(fā)者如果你決定只買(mǎi)一本有關(guān)JavaScript的書(shū),那么就應(yīng)是Marijn Haverbeke的這本書(shū)。——Joey deVilla,Global Nerdy本書(shū)不僅是學(xué)習(xí)JavaScript最棒的教材之一,也是通過(guò)學(xué)習(xí)JavaScript進(jìn)而學(xué)習(xí)現(xiàn)代編程的優(yōu)秀圖書(shū)。當(dāng)有人問(wèn)我如何學(xué)好JavaScript時(shí),我會(huì)推薦這本書(shū)?!狢hris Williams,美國(guó)JSConf組織者我讀過(guò)的最棒的JavaScript書(shū)籍之一?!猂ey Bango,微軟Client-Web社區(qū)項(xiàng)目經(jīng)理和jQuery團(tuán)隊(duì)成員這本書(shū)不僅是一本非常不錯(cuò)的JavaScript指導(dǎo)書(shū),而且是一本很棒的編程指導(dǎo)書(shū)。——Ben Nadel,Epicenter咨詢(xún)公司首席軟件工程師真是本好書(shū)?!狣esign Shack這本書(shū)對(duì)編程基本原理的詳述以及對(duì)棧和環(huán)境等概念的解釋非常到位。注重細(xì)節(jié)使本書(shū)從其他的JavaScript書(shū)中脫穎而出?!狣esignorati學(xué)習(xí)JavaScript的好書(shū)?!狢raig Buckler,OptimalWorks Web Design公司

圖書(shū)封面

圖書(shū)標(biāo)簽Tags

無(wú)

評(píng)論、評(píng)分、閱讀與下載


    JavaScript編程精解 PDF格式下載


用戶(hù)評(píng)論 (總計(jì)60條)

 
 

  •   本書(shū)著重于講編程思想,如果其他語(yǔ)言學(xué)得不是很好的人,建議不要看這本書(shū)。
  •   書(shū)很不錯(cuò) 由淺入深 適合程序員看
  •   從博客園中認(rèn)識(shí)湯姆大叔,從他的博客中學(xué)習(xí)到了豐富的js知識(shí),我想這么好的書(shū)由他來(lái)翻譯一定是精彩的,書(shū)不厚,讓人讀起來(lái)沒(méi)有那么大的壓力,內(nèi)容還沒(méi)有看,相信不會(huì)錯(cuò)!
  •   書(shū)挺薄的。內(nèi)容大概的看了一下,挺不錯(cuò)的一本書(shū)!值得推薦!
  •   內(nèi)容精辟,推薦閱讀
  •   很薄,但很精簡(jiǎn),相關(guān)內(nèi)容都有,就看自己學(xué)的決心了!隨身帶一本,沒(méi)事就研究和學(xué)習(xí)。。。
  •   暫時(shí)好沒(méi)看 感覺(jué)和一般的講js的書(shū)有點(diǎn)不一樣
  •   很薄不過(guò)看內(nèi)容應(yīng)該不錯(cuò)
  •   內(nèi)容寫(xiě)的不錯(cuò),需要有一定基礎(chǔ)的閱讀
  •   大概瀏覽了下,可以當(dāng)做參考書(shū)
  •   剛收到的書(shū),送貨速度相當(dāng)?shù)慕o力,不過(guò)還沒(méi)看呢!應(yīng)該不錯(cuò)吧!
  •   內(nèi)容不錯(cuò),就是沒(méi)想象中的厚
  •   讀了大叔很多的blog,本書(shū)內(nèi)容非常不錯(cuò)
  •   如果想深入了解 可以一看
  •   大叔翻譯必屬精品。包裝很好,送貨很快OWO還沒(méi)看內(nèi)容
  •   但是是一本很好的書(shū)!
  •   書(shū)太溥,價(jià)格不菲
  •   書(shū)有點(diǎn)薄,幫別人帶的,希望不錯(cuò)
  •   需要細(xì)嚼慢咽,慢慢品味
  •   看了一點(diǎn) ,總體感覺(jué)不錯(cuò)。 待讀
  •   替同事下單的, 他說(shuō)不錯(cuò).
  •   翻譯的蠻好的 物流人員也辛苦了 人也那么熱情
  •   信大叔, 錯(cuò)不了!
  •   沖著湯姆大叔買(mǎi)的,在博客園上看到的
  •   nice簡(jiǎn)單好學(xué)
  •   買(mǎi)回來(lái)了,還沒(méi)來(lái)得及看
  •   還沒(méi)看,物流不是很快。不過(guò)還可以
  •   大致看了一下內(nèi)容,本書(shū)適合有一定js基礎(chǔ)的人看
  •   書(shū)挺好的額,除了基礎(chǔ)的方面,還稍微講解了AJAX等現(xiàn)在領(lǐng)先的使用的技術(shù)。
  •   書(shū)的頁(yè)碼不多 但是基礎(chǔ)知識(shí)講解得很到位
  •   很好,正在學(xué)習(xí)中,不是很難
  •   1天就看完了,只適合新手看。
  •   還行,內(nèi)容比較少,要精通還需參考書(shū)
  •   很好,印刷不錯(cuò),寫(xiě)的也詳細(xì)
  •   一般,感覺(jué)膚淺,比較適合新手
  •   包裝也不錯(cuò)!支持下!
  •   書(shū)很薄啊...可能不錯(cuò)吧...也許都是精華...需要仔細(xì)讀一下...
  •   朋友買(mǎi)的書(shū)~~~~~好專(zhuān)業(yè)啊
  •   不錯(cuò),挺喜歡的?。。。。。。。。。。。。?!
  •   翻譯不是很好,初學(xué)者可能有點(diǎn)理解困難...
  •   比較薄,容易看
  •   但是對(duì)于深入理解或者動(dòng)手寫(xiě)大規(guī)模的程序還遠(yuǎn)得很。畢竟太薄。
  •   書(shū)太薄了,比想象中要薄好多
  •   書(shū)的紙質(zhì)不太好
  •   我個(gè)人覺(jué)字體有點(diǎn)小,總體知識(shí)沒(méi)有太多新鮮。
  •   只要你寫(xiě)過(guò)幾行代碼,或讀過(guò)幾頁(yè)編程書(shū),就看不下該書(shū)寫(xiě)得太簡(jiǎn)單了
  •   本書(shū)的英文原版很不錯(cuò),可以中文版翻譯的真的很蹩腳。買(mǎi)原版,不要買(mǎi)翻譯版本
  •   書(shū)很不錯(cuò),不過(guò)沒(méi)有我想像的那么厚,打個(gè)五分吧
  •   知識(shí)很精煉知識(shí)很精煉
  •   書(shū)形象打比喻的方法說(shuō)明javascript,不錯(cuò)。適合初學(xué)者一看
  •   您好!我是 Eloquent JavaScript 讀者。最近作者計(jì)劃再版,以眾籌的形式籌集資金,以決定再版的深度和投入的精力。現(xiàn)在籌集了大約 8k 歐元,進(jìn)入平臺(tái)期,這個(gè)錢(qián)只夠重寫(xiě)一部分的。請(qǐng)大家多多支持!作者籌款主頁(yè)在這 https://eloquentjavascript.net/2nd_edition/ 請(qǐng)核實(shí)并考慮!非常感謝!
  •   好書(shū),適合快速入門(mén),送貨及時(shí)
  •   書(shū)中廢話(huà)較少,譯文不錯(cuò)
  •   內(nèi)容看起來(lái)不枯燥,譯者也是值得信賴(lài)的業(yè)內(nèi)人士。
  •   很不錯(cuò)的一本書(shū)。很好。
  •   不錯(cuò),可以讀一讀的js
  •   原作還不錯(cuò),有人吐槽翻譯不好,我沒(méi)覺(jué)得啊。書(shū)中例子很形象,至少讓人讀得下去。
  •   看著是湯姆大叔的翻譯,才去買(mǎi)的。里面內(nèi)容沒(méi)有湯姆大叔翻譯的博客精彩
  •   一晚上看了前三章,屬于比較初級(jí)的讀本,介紹函數(shù)的時(shí)候不會(huì)暴力的全部一次列出,而是慢慢地引入,什么地方用到什么地方才學(xué),不是字典型書(shū)籍。最大弊端是這個(gè)翻譯,有3 4段我到現(xiàn)在還不知道譯者所說(shuō)的“這種情況”指的是什么情況,而且讀起來(lái)很多地方都解釋不通,甚至有時(shí)候懷疑作者是不是谷歌翻譯的,暈,最好還是買(mǎi)英文原版吧!
  •   湊單幫帶
 

250萬(wàn)本中文圖書(shū)簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書(shū)網(wǎng) 手機(jī)版

京ICP備13047387號(hào)-7