JavaScript與Dart的比較
成都創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、網(wǎng)站頁(yè)面設(shè)計(jì)、網(wǎng)站優(yōu)化SEO優(yōu)化為一體的專(zhuān)業(yè)的建站公司,已為成都等多地近百家企業(yè)提供網(wǎng)站建設(shè)服務(wù)。追求良好的瀏覽體驗(yàn),以探求精品塑造與理念升華,設(shè)計(jì)最適合用戶(hù)的網(wǎng)站頁(yè)面。 合作只是第一步,服務(wù)才是根本,我們始終堅(jiān)持講誠(chéng)信,負(fù)責(zé)任的原則,為您進(jìn)行細(xì)心、貼心、認(rèn)真的服務(wù),與眾多客戶(hù)在蓬勃發(fā)展的市場(chǎng)環(huán)境中,互促共生。1、流行程度
JavaScript實(shí)際上無(wú)處不在,幾乎沒(méi)有不運(yùn)行JavaScript的設(shè)備。當(dāng)前,JavaScript被用于編寫(xiě)Web,移動(dòng)和服務(wù)器端代碼。 JavaScript在StackOverflow上標(biāo)記了將近200萬(wàn)個(gè)問(wèn)題。
由于其受歡迎程度,JS生態(tài)系統(tǒng)非常龐大,現(xiàn)在,隨著云組件中心的出現(xiàn),它甚至在可重用組件“市場(chǎng)”中占主導(dǎo)地位。
另一方面,Dart變得越來(lái)越流行,但距離JavaScript還很遙遠(yuǎn)。在Google宣布Flutter之前,Dart無(wú)處可尋。Dart吸引了不支持JavaScript的開(kāi)發(fā)人員。目前,Dart在StackOverFlow上標(biāo)記了將近3萬(wàn)個(gè)問(wèn)題。
2、學(xué)習(xí)曲線
眾所周知,JavaScript對(duì)于初學(xué)者來(lái)說(shuō)是相當(dāng)棘手的,特別是當(dāng)他們沒(méi)有編程概念的背景知識(shí)時(shí)。但是JavaScript是大學(xué)和訓(xùn)練營(yíng)教授的主要語(yǔ)言之一,因?yàn)樗荳eb開(kāi)發(fā)的核心之一。實(shí)際上,HTML,CSS和JavaScript被稱(chēng)為Web開(kāi)發(fā)的三劍客。在線上有很多課程和教程可以幫助您學(xué)習(xí)JavaScript。
但是,使用Dart,情況就大不相同了。學(xué)習(xí)Dart對(duì)于新手來(lái)說(shuō)可能會(huì)非常嚇人,因?yàn)樗幌馢avaScript那樣廣為人知,而且學(xué)習(xí)材料相對(duì)較少。但是Google竭盡全力幫助其他OOP語(yǔ)言的開(kāi)發(fā)人員無(wú)縫過(guò)渡到Dart。
3、類(lèi)型安全
這是JavaScript和Dart之間的主要區(qū)別之一。作為一種解釋型語(yǔ)言,JavaScript支持動(dòng)態(tài)類(lèi)型和鴨子類(lèi)型。鴨子類(lèi)型是根據(jù)特定方法和屬性的存在而不是對(duì)象本身的類(lèi)型來(lái)確定對(duì)象是否適合用于特定目的的類(lèi)型。Javascript允許鍵入任何代碼,使其成為非類(lèi)型安全的語(yǔ)言,導(dǎo)致僅在運(yùn)行時(shí)發(fā)現(xiàn)錯(cuò)誤。
相反,Dart支持松散的和強(qiáng)大的原型設(shè)計(jì)。作為一種編譯語(yǔ)言,Dart能夠在編譯過(guò)程中發(fā)現(xiàn)大多數(shù)錯(cuò)誤,這使得它比JavaScript更加類(lèi)型安全。
4、企業(yè)使用
JavaScript已在商業(yè)上使用,即使在大型項(xiàng)目中也是如此,它用于構(gòu)建Web和跨平臺(tái)應(yīng)用程序。Facebook引入的Web和跨平臺(tái)框架React和React Native使用JavaScript,這些框架在Facebook內(nèi)部使用。Airbnb,Slack,eBay等其他公司也使用JavaScript。
Dart的出生地是Google,因此,一開(kāi)始它在內(nèi)部被廣泛使用。然后,在引入Flutter之后,諸如阿里巴巴這樣的大公司采用Flutter和Dart來(lái)開(kāi)發(fā)其跨平臺(tái)應(yīng)用程序。
將Dart編譯成JavaScript
Dart有兩種不同的JS編譯器,Webdev工具根據(jù)用例選擇最佳的編譯器。在開(kāi)發(fā)應(yīng)用程序時(shí),webdev選擇dartdevc,它支持增量編譯,因此你可以快速查看編輯結(jié)果。但是,在構(gòu)建要部署的應(yīng)用程序時(shí),webdev選擇dart2js,它使用搖樹(shù)之類(lèi)的技術(shù)來(lái)生成優(yōu)化的代碼。
Dart團(tuán)隊(duì)正在努力使dart2js編譯的代碼比手寫(xiě)JS運(yùn)行得更快。雖然不是所有情況下都會(huì)如此,但我們可以期待在不久的將來(lái)會(huì)有一些激烈的競(jìng)爭(zhēng)。
利弊
JavaScript
優(yōu)點(diǎn):
JavaScript可以用于Web和移動(dòng)應(yīng)用程序。
它可以用于前端和后端,因此JavaScript可以在每個(gè)設(shè)備上運(yùn)行。
JavaScript具有龐大的社區(qū)和在線提供的出色框架。
輕巧而靈活。
可以找到大量的學(xué)習(xí)資料。
缺點(diǎn):
盡管JS有大量的庫(kù),但是有很多庫(kù)的質(zhì)量和維護(hù)性很差。
僅在運(yùn)行時(shí)發(fā)現(xiàn)錯(cuò)誤。
Dart
優(yōu)點(diǎn):
開(kāi)源。
由大公司——Google支持。
類(lèi)型安全,并使用JIT和AOT進(jìn)行編譯。
Flutter的骨干。
在某些情況下相對(duì)更快
缺點(diǎn):
對(duì)程序員而言相對(duì)較新。
與JavaScript相比,學(xué)習(xí)材料并不廣泛。
以上就是JavaScript 和 Dart 的區(qū)別的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注創(chuàng)新互聯(lián)其它相關(guān)文章!