ECMAScript 2018快速入門( 簡體 字) | |
作者:黃燈橋 | 類別:1. -> 程式設計 -> 網路編程 -> Javascript |
出版社:清華大學出版社 | 3dWoo書號: 50491 詢問書籍請說出此書號! 有庫存 NT售價: 145 元 |
出版日:1/1/2019 | |
頁數:130 | |
光碟數:0 | |
站長推薦: | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787302516811 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
第1章變量與常量 1 ECMAScript是一種由ECMA國際通過ECMA-262標準化的腳本程序設計語言,目前最新版本為ECMAScript 2018。JavaScript是這個標準的一個實現和擴展。這種語言廣泛用于Web前端開發,可以說想成為一名前端開發高手,就必須掌握ECMAScript。
本書分為13章,較為系統地介紹ECMAScript語言,內容包括變量與常量、表達式和運算符、字符串、數字和符號、數組和類型化數組、對象、函數、集合和映射、迭代器和生成器、Promise對象與異步函數、代理、類和模塊,最后引導讀者自己動手寫一個JS框架。 本書適合Web前端初學者、不了解ECMAScript的Web前端開發人員,也適合高等院校和培訓學校相關專業的師生進行參考。 1994年,第一個比較成熟的瀏覽器Navigator(0.9版本)發布的時候,只是一個純瀏覽器工具,不具備互動功能。為了解決互動問題,網景公司希望能通過一種腳本語言來實現。至于使用什么語言,網景公司一時也難以決定。這時,Sun公司推出了Java,給人的感覺就是擁抱了Java,就等于擁抱了未來。作為Java的信徒,網景公司于是選擇與Sun合作,推出JavaScript語言。
網景的本意是制作一個Java的簡化版腳本語言,但很不幸,他們請來開發JavaScript語言的設計師Brendan Eich 并不是Java的信徒,只用10天時間就將JavaScript寫出來了。不過,JavaScript并沒有成為簡化版的Java,而是成了一個大雜燴,使用了C語言的語法、Java語言的數據類型和內存管理,借鑒Scheme,把函數式開發作為主要開發方式,借鑒Self語言,使用基于原型(prototype)的繼承機制。這個大雜燴就這樣成為我們現在使用起來比較酸爽的JavaScript。以至于作為JavaScript的設計師,他自己一點都不喜歡這個作品:“與其說我愛JavaScript,不如說我恨它。它是C語言和Self語言結合的產物。十八世紀英國文學家約翰遜博士說得好:‘它的優秀之處并非原創,它的原創之處并不優秀’”。這都是和公司決策層妥協后的結果。而這造成的最終結果就是不少人誤以為JavaScript就是Java,為了修正JavaScript的開發問題,不斷衍生出不同版本的衍生語言,如CoffeeScript、TypeScript等。這件事給編者的第一觀感就是情懷這東西,太有毒了,不得不時常用來提醒自己。想當初,編者也是有情懷的,也曾自學過Java,但在使用過后,加上Sun和微軟的Java之爭,就再也不去考慮了。 網景推出了這樣一種語言,微軟等其他公司也不甘落后,都各自推出了自己的腳本語言。如果各大公司都這樣各自獨立地發展下去,那么最頭疼的就是開發人員了,為了解決各瀏覽器的兼容性問題,那可是要費九牛二虎之力的。還好,網景做了一個好的表率,在1996年11月,將JavaScript提交給了國家標準化組織ECMA,使JavaScript成了一種國際標準,各大公司雖然有私心,但也不得不遵守標準,不然,最大的后果就是被開發人員甚至用戶拋棄。在1997年,ECMA發布262號標準文件的第一版,也就是ECMAScript 1.0。JavaScript這個名稱只是人們習慣的說法,它的正式名稱是ECMAScript,這樣做一是因為JavaScript是網景公司的商標,不便于使用,二是為了保證這門語言的開放性和中立性。 ECMAScript在1998年發布了2.0版本,在1999年發布了3.0版本,然后就戛然而止。這其中的原因是在2000年醞釀ECMAScript 4.0的時候,版本太過于激進了,導致標準委員會的一些成員不愿意接受。2007年10月,ECMAScript 4.0版草案發布,但在發布正式版本前,又發生了嚴重分歧。其中,雅虎、微軟和谷歌等為首的大公司反對大幅升級,主張小幅改動,這畢竟關系到他們的利益,而以Brendan Eich為首的Mozilla則堅持當前的草案。事情鬧得不可開交,到了2008年7月,ECMA不得不中止ECMAScript 4.0的開發,將其中一部分小的功能改善發布為3.1版本,而激進的改動則留待以后解決。在2009年12月,將ECMAScript 3.1改名為ECMAScript 5.0發布。2011年6月,ECMAScript 5.1版發布,并且成為ISO國際標準(ISO/IEC 16262:2011)。 2013年3月,ECMAScript 6草案凍結,不再添加新功能。新功能設想將被放到ECMAScript 7。2013年12月,ECMAScript 6草案發布。然后是12個月的討論期,聽取各方反饋。2015年6月,ECMAScript 6正式通過,成為國際標準。從這一版本開始,ECMAScript 6更名為ECMAScript 2015,也就是以年份作為版本號,不再使用以往的版本號。之后就每年發布一個版本,直到如今的ECMAScript 2018。 綜觀JavaScript的發展,與行業的發展是密不可分的。在JavaScript誕生后,程序員就開始考慮如何利用JavaScript來構建更豐富的客戶端。例如,編者2000年在一家網絡公司工作時,為了實現項目中的日期選擇,就與同事合作編寫了日期選擇器,之后,又完成了一個顏色選擇器。不過,這項工作沒持續多長時間,編者就離開了,沒繼續從事這方面的工作。當編者重新走上Web開發的路途時,JavaScript已經從以前的單一組件化(如HTC、DXHtml等)走向了框架化。 在這里不得不提一下微軟、谷歌和雅虎的貢獻。XMLHttpRequest對象是微軟發明的,被整合到了IE 4中,不過,在當時并沒有引起什么轟動,直到谷歌在谷歌地圖中用它實現了令人驚艷的交互效果,才引發了一場我們稱之為Web 2.0的技術革命。伴隨著Web 2.0的步伐,各種JavaScript框架以井噴的形式爆發。在這波大潮當中,雅虎的YUI可以說是第一個相當實用的圖形界面(UI)庫,可惜的是,最終用的人并不多。不過,雅虎的另一個貢獻YUI Compressor卻非常受歡迎,它本來是為YUI服務的,可將零散的YUI文件壓縮為一個單一的腳本包,而最終發展成為各種框架或腳本應用程序的壓縮打包程序,而這無疑是腳本發展的一個跨越。試想一下,對于一個大型項目或者框架來說,總不可能把腳本都寫在一個文件里,但文件太多,對服務器負載和瀏覽器的響應來說都是難以接受的,通過壓縮和打包的方式將文件壓縮并合并到一個文件,對于服務器的負載和瀏覽器的響應就好很多了,無疑大大促進了框架的發展。 隨著移動互聯網的發展,JavaScript的應用越來越廣泛,項目逐漸擴大,為了滿足發展的需要,JavaScript不得不變,于是更新頻率越來越快。 JavaScript版本當然是越新越好,但要使用最新版本的JavaScript,就必須考慮瀏覽器的兼容性問題。如果不能兼容大多數瀏覽器,那么部分工作就要重來,這是任何項目都難以承受的。編者在使用Ext JS開發項目的時候,排在第一位的需求是客戶對瀏覽器有什么要求,如果一定要兼容IE 8以下的瀏覽器,編者建議不要使用Ext JS,換其他對這些瀏覽器兼容性更好的版本。當然,這在開發效率上是有所降低的,并且開發成本會上升。好在這方面要求比較高的客戶不算太多,畢竟現在還死守IE瀏覽器的用戶不是太多。編者秉持的觀點是為了這一點點的用戶而去犧牲開發效率、開發成本以及維護成本,不值得。而且用戶也不是鐵板一塊,或許他們早厭煩了IE,只是沒有機會,或者沒有動力,或者不知道怎么去更換瀏覽器而已。在使用最新版本的ECMAScript方面就比編者使用Ext JS彈性大了,通過代碼轉換器和填充代碼等方式,可以將代碼轉換為兼容老舊瀏覽器的代碼,非常方便,還好,Ext JS這個框架也在往這個方向遷移。可以預見,未來JavaScript的開發模式基本都是使用NodeJS以及各種類庫,使用最新的ECMAScript來開發項目的。能早點熟悉這種開發模式,對于要進入這個行業的開發人員來說是必不可少的。本書最后的例子就是為大家熟悉這種開發模式而專門添加的。 本書的開發環境如下。 ● 操作系統:Windows 10。 ● 開發工具:Visual Studio Code。 ● NodeJS:10.7.0。 ● 瀏覽器:Firefox 61.0.1 本書的源代碼放在GitHub上,大家可以自行到相應的地址下載。 在本書的出版過程中,得到了清華大學出版社圖格新知事業部編輯的大力支持,在他們的努力下,促成了本書的出版,在此表示衷心的感謝。此外,還要感謝那些在互聯網上默默耕耘的博客作者以及在各大論壇回復問題的大牛們,是他們的努力耕耘,才使編者找到解決問題的辦法,是他們讓編者有了進一步提高技能的機會。 編 者 2018年11月 |