忘記文檔密碼怎么找回來
624
2022-05-30
現在已經有許多種編程語言了,為什么還要用JavaScript呢?下面從7個方面來講述如何選擇一門編程語言及如何評判JavaScript的整體表現。
JavaScript可以自由使用嗎?
JavaScript可以說是最開放的編程語言:ECMA-262,JavaScript語言的規范,它是一個ISO標準,有著許多獨立的實現,其中一些是開源的。此外,該語言是由TC39演變而來,TC39是一個由幾家公司組成的委員會,包括所有主要的瀏覽器廠商。這些公司通常都是競爭對手,但是卻能為JavaScript語言的福祉而一起工作。
JavaScript是一門優雅的編程語言嗎?
這很難說,我使用過幾種語言,寫過許多不同范式的等價代碼。因此,我很清楚JavaScript并非那么極致的優雅。然而,它是一種非常靈活的語言,擁有一顆相當優雅的內核,并且能夠讓你使用面向對象和函數式編程的混合方式。
JavaScript引擎之間的語言兼容性往往會是一個問題,但如今不再是了,這一定程度上要感謝test262套件(https://github.com/tc39/test262),它可以用于檢查引擎是否遵循ECMAScript規范。相反,瀏覽器和DOM的差異仍然是一個挑戰。這也是為什么我們通常會借助于框架來隱藏這些差異的原因。
JavaScript有用嗎?
如果它不能讓你寫出你想要的程序,那么哪怕它是世界上最漂亮的程序語言都沒有任何用處。
1. 圖形用戶界面
在圖形用戶界面方面,JavaScript受益于它已成為HTML5的一部分。我用HTML5這個術語來表示“跨瀏覽器平臺”(HTML、CSS,以及瀏覽器JavaScript API)。HTML5現被廣泛部署并且仍在不斷地進步,它正逐漸變成完善的一層,能夠寫出功能完備的、跨瀏覽器的應用;類似于Java平臺,它就像是一個嵌入式的操作系統。HTML5的一個賣點是允許你編寫跨平臺的圖形用戶界面。當然,這總會有一些妥協:通過放棄一定的質量要求換取不僅限于單一的操作系統。在過去,“跨平臺”意味著Windows、Mac OS,或者Linux。但是現在我們又有了兩個交互平臺:Web以及mobile。通過HTML5,你可以通過使用諸如PhoneGap、Chrome Apps(http://developer.chrome.com/apps/)、以及TideSDK(http://www.tidesdk.org/)等這些技術去觸及所有的平臺。
另外,有些平臺擁有和原生應用一樣的Web應用,或者可以讓你將它們安裝到本地,例如Chrome OS、Firefox OS以及Android。
2. 其他技術補充完善JavaScript
有更多不是HTML5的技術對JavaScript進行著有效的補充,使得該語言變得更為實用。
(1)類庫
JavaScript有大量的類庫,從解析JavaScript(通過Esprima(http://esprima.org))到處理和顯示PDF文件(通過PDF.js(https://github.com/mozilla/pdf.js))等,足以讓你完成任務。
(2)Node.js(http://nodejs.org)
Node.js平臺允許你編寫服務端代碼以及Shell腳本(如構建工具、測試執行等)。
(3)JSON (JavaScript對象表示法, 參見第22章
JSON是一種基于JavaScript的數據格式,已經成為網絡上流行的數據交換格式(如Web服務的結果)。
(4)NoSQL數據庫 (諸如CouchDB[http://couchdb.apache.org]以及MongoDB[http://www.mongodb.org])
這些數據庫和JSON以及JavaScript緊密相連。
JavaScript有什么好用的工具?
JavaScript正在具備越來越好的構建工具(如Grunt[http://gruntjs.com])和測試工具(如mocha[http://visionmedia.github.io/mocha/])。Node.js使得我們可以通過Shell(不僅僅是通過瀏覽器)來運行這些工具。這一領域存在一個風險就是碎片化,現在正日漸出現太多類似的工具。
JavaScript IDE的空間仍處于較為初級的階段,但是發展迅速。Web開發的復雜性和活力為它帶來創新的沃土。兩個開源的例子是Brackets(http://brackets.io)和Light Table(http://www.lighttable.com)。
此外,瀏覽器也越來越具備開發的環境。如Chrome,尤其是在最近取得了令人印象深刻的進步。看著許多IDE和瀏覽器未來將整合在一起,這將非常有趣。
JavaScript在處理你要做的事情時夠快嗎?
JavaScript引擎已經取得了極大的進步,舊的編譯器進化成了實時的編譯器。絕大多數的應用程序現在已經運行得足夠快了。況且,新的想法也正在開發中,它們都為了讓未來應用里的JavaScript程序可以執行得足夠快。
asm.js(http://asmjs.org/)是一個JavaScript(非常穩定)的子集,它在當前的引擎上跑得很快,具備C++編譯過的程序的70%的性能。例如,它可以用于實現Web應用程序中性能至上的算法部分,也可以用于將基于C++的游戲移植到Web平臺。
ParallelJS(http://www.2ality.com/2013/12/paralleljs.html)使用和JavaScript截然不同的代碼,使用新的數組方法mapPar, filterPar,以及reducePar(JavaScript對于已經存在的數組平行版本方法是map、filter,以及reduce)。為了使其并行工作,回調函數必須寫成指定的格式;主要的限制是你不能夠改變那些回調中創建的數據。
JavaScript是廣泛使用的嗎?
一門被廣泛使用的語言通常有兩個好處。首先,這門語言有更好的文檔和支持。其次,越來越多的程序員了解它,這點非常重要,不論你是想要雇用別人還是銷售基于這門語言的工具。
JavaScript被廣泛使用,且獲得了以下兩個好處。
JavaScript相關的文檔和各式各樣的支持:書籍、播客、博客、電子郵件時事通信、論壇等。
JavaScript開發人員需求量很大,盡管他們的排名也不斷在增加。
JavaScript有前途嗎?
有幾件事表明JavaScript有一個光明的未來。
語言是穩步發展的;ECMAScript 6看起來不錯。
有許多JavaScript相關的創新(例如,上述提到的asm.js和ParallelJS,微軟出品的TypeScript等)。
JavaScript的網絡平臺是一個必需的組成部分,正在迅速成熟。
JavaScript是被聯盟廣泛支持的,而不是被單獨的人或者公司控制。
以上內容節選自《深入理解JavaScript》
相關本書評論:
這是一本為剛接觸編程的程序員寫的最簡潔完整的JavaScript書籍。
這是一本非常棒的書,極易理解。對Web開發新人和高手來說都是必備讀物。
—— Ariya Hidayat, Shape Security工程總監
Dr.Axel Rauschmayer 專攻JavaScript和Web開發領域。他在2ality.com寫博客,教Ecmanauten,編輯JavaScript Weekly周刊,組織MunichJS用戶組。Axel從1985年開始編程,1995年開始開發Web應用。
譯者們
王玉林
花名:小飛
微博:@非常長
魔筷科技創始人,原阿里巴巴資深前端工程師,原阿里花名“飛長”。喜歡安靜地寫代碼,同時也愿意從商業角度做一點點思考,努力做一些可能很微小,但對這個世界有那么點意義和價值的事。目前魔筷科技正專注于提供完整的移動電商解決方案。
杜歡
花名:風馳
郵箱:fengchi.dh@taobao.com
淘寶高級技術專家,專注Web產品設計、整體架構和可用性實施,熱愛標準化。
莊婷婷
花名:紫溪
郵箱:sleep.ztt@gmail.com
阿里前端工程師,在前端開發方面積累了多年經驗。閑暇時喜歡旅行、閱讀,偶爾翻譯點技術文章,不斷探尋有趣的事。
章子鵬
花名:喬福
微博:@請強刷五次
一名普通的前端開發工程師,就職于淘寶用戶體驗部。以前的愿望是期望國內的IE6份額不斷降低,現在力求利用豐富的Web技術構建優秀的用戶體驗的產品。在業余時間會做一些翻譯,搗鼓前端技術、Linux和Shell等。目前在學習iOS和日語。
軟件開發 編程語言 Web應用防火墻 WAF 前端開發
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。