什麼是JavaScript?
JavaScript通常被稱為瀏覽器腳本語言,但它也已擴展到許多伺服器端和行動應用程式開發環境。 JS已經存在了將近20年,可以肯定地說它確實是一種成熟且穩定的程式語言。在Facebook發布React和React Native框架之後,JS變得越來越流行。
JavaScript有自己的軟體套件管理器,例如NPM和Yarn。儘管JavaScript現在是首選和流行,但在程式設計社群中仍然有一些不同的評論。不過,可以肯定地說,JavaScript的流行性毋庸置疑,因為它包含將近200萬個在StackOverFlow上標記的問題。
什麼是Dart?
Dart是由Google專門針對各種平台上的快速應用程式進行用戶端最佳化的語言。 Google最初將其用作內部程式語言來建立Web、伺服器和行動應用程式。儘管Dart自2011年以來一直存在,但在Google宣布Flutter進行跨平台行動應用程式開發後,它就開始流行。唯一的原因是Flutter完全基於Dart。因此,行動開發人員必須學習Dart 才能開始使用Flutter。
Dart編譯原始碼,類似C等其他程式語言。但是它也有自己的虛擬機器(VM),用於運行稱為Dart VM的原生應用程式。 Dart也有自己的軟體套件管理器,稱為Pub。
使用Dart和JavaScript的範例應用程式
Dart.js
void main() { print("Hello World"); }
Javascript
console.log("Hello World")
# JavaScript與Dart的比較
1、流行程度
JavaScript其實無所不在,幾乎沒有不執行JavaScript的裝置。目前,JavaScript被用來編寫Web,行動和伺服器端程式碼。 JavaScript在StackOverflow上標記了將近200萬個問題。
由於其受歡迎程度,JS生態系統非常龐大,現在,隨著雲端組件中心的出現,它甚至在可重複使用組件「市場」中占主導地位。
另一方面,Dart變得越來越流行,但距離JavaScript還很遙遠。在Google宣布Flutter之前,Dart無處可尋。 Dart吸引了不支援JavaScript的開發人員。目前,Dart在StackOverFlow上標記了將近3萬個問題。
2、學習曲線
眾所周知,JavaScript對於初學者來說是相當棘手的,特別是當他們沒有程式設計概念的背景知識時。但是JavaScript是大學和訓練營教授的主要語言之一,因為它是網路開發的核心之一。實際上,HTML,CSS和JavaScript被稱為Web開發的三劍客。在線上有很多課程和教學可以幫助您學習JavaScript。
但是,使用Dart,情況就大不相同了。學習Dart對新手來說可能會非常嚇人,因為它不像JavaScript那樣廣為人知,而且學習材料相對較少。但是Google竭盡全力幫助其他OOP語言的開發人員無縫過渡到Dart。
3、型別安全性
這是JavaScript和Dart之間的主要差異之一。作為一種解釋型語言,JavaScript支援動態類型和鴨子類型。鴨子類型是根據特定方法和屬性的存在而不是物件本身的類型來確定物件是否適合用於特定目的的類型。 Javascript允許鍵入任何程式碼,使其成為非類型安全的語言,導致僅在執行時間發現錯誤。
相反,Dart支援鬆散的和強大的原型設計。作為一種編譯語言,Dart能夠在編譯過程中發現大多數錯誤,這使得它比JavaScript更類型安全。
4、企業使用
JavaScript已在商業上使用,即使在大型專案中也是如此,它用於建立Web和跨平台應用程式。 Facebook引入的Web和跨平台框架React和React Native使用JavaScript,這些框架在Facebook內部使用。 Airbnb,Slack,eBay等其他公司也使用JavaScript。
Dart的出生地是Google,因此,一開始它在內部被廣泛使用。然後,在引入Flutter之後,像阿里巴巴這樣的大公司採用Flutter和Dart來開發其跨平台應用程式。
將Dart編譯成JavaScript
#Dart有兩種不同的JS編譯器,Webdev工具根據用例選擇最佳的編譯器。在開發應用程式時,webdev選擇dartdevc,它支援增量編譯,因此你可以快速查看編輯結果。但是,在建立要部署的應用程式時,webdev選擇dart2js,它使用搖樹之類的技術來產生最佳化的程式碼。
Dart團隊正在努力讓dart2js編譯的程式碼比手寫JS更快。雖然不是所有情況下都會如此,但我們可以期待在不久的將來會有一些激烈的競爭。
利弊
JavaScript
優點:
Dart
優點:以上是JavaScript 和 Dart 的區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!