解密編程語言林林種,為何還用JavaScript?

      網友投稿 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應用。

      譯者們

      王玉林

      花名:小飛

      微博:@非常長

      解密!編程語言林林種,為何還用JavaScript?

      魔筷科技創始人,原阿里巴巴資深前端工程師,原阿里花名“飛長”。喜歡安靜地寫代碼,同時也愿意從商業角度做一點點思考,努力做一些可能很微小,但對這個世界有那么點意義和價值的事。目前魔筷科技正專注于提供完整的移動電商解決方案。

      杜歡

      花名:風馳

      郵箱:fengchi.dh@taobao.com

      淘寶高級技術專家,專注Web產品設計、整體架構和可用性實施,熱愛標準化。

      莊婷婷

      花名:紫溪

      郵箱:sleep.ztt@gmail.com

      阿里前端工程師,在前端開發方面積累了多年經驗。閑暇時喜歡旅行、閱讀,偶爾翻譯點技術文章,不斷探尋有趣的事。

      章子鵬

      花名:喬福

      微博:@請強刷五次

      一名普通的前端開發工程師,就職于淘寶用戶體驗部。以前的愿望是期望國內的IE6份額不斷降低,現在力求利用豐富的Web技術構建優秀的用戶體驗的產品。在業余時間會做一些翻譯,搗鼓前端技術、Linux和Shell等。目前在學習iOS和日語。

      軟件開發 編程語言 Web應用防火墻 WAF 前端開發

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:ES集群檢查常用命令
      下一篇:C#記事本項目開發,一個可以實現批量操作的記事本!【附源碼】
      相關文章
      亚洲中文字幕久久无码| 亚洲六月丁香婷婷综合| 国产精品亚洲专区一区| 亚洲妇女熟BBW| 亚洲Av无码一区二区二三区| 亚洲狠狠ady亚洲精品大秀| 亚洲色图古典武侠| 亚洲美女大bbbbbbbbb| 亚洲黄色片在线观看| 亚洲色偷偷av男人的天堂| 亚洲视频免费在线看| 亚洲明星合成图综合区在线| 91亚洲精品麻豆| 亚洲国产成a人v在线观看| 亚洲免费福利视频| 国产成人精品日本亚洲网址 | 亚洲伊人久久大香线蕉| 亚洲资源最新版在线观看| 99热亚洲色精品国产88| 亚洲熟妇自偷自拍另欧美| 亚洲成a∧人片在线观看无码| 亚洲a∨无码精品色午夜| 亚洲国产日韩成人综合天堂| 亚洲午夜无码片在线观看影院猛| 精品国产香蕉伊思人在线在线亚洲一区二区 | 水蜜桃亚洲一二三四在线| 亚洲成人在线网站| 亚洲视频免费在线看| 亚洲a级片在线观看| 亚洲精品中文字幕无码A片老| 亚洲JIZZJIZZ妇女| 亚洲精品国产福利一二区| 亚洲日韩乱码中文无码蜜桃臀网站| 国产偷v国产偷v亚洲高清| 亚洲日本中文字幕| 亚洲午夜精品在线| 亚洲aⅴ无码专区在线观看春色| 亚洲国产一成久久精品国产成人综合 | 亚洲中文字幕无码爆乳AV| 亚洲国产成人片在线观看无码| 亚洲视频在线播放|