亚洲精品乱码久久久久蜜桃-97国产精品人妻无码久久久-加勒比中文字幕无码一区-中文字幕乱人伦高清视频-无码va在线观看

24小時咨詢電話:0571-88023217廚房用品網站建設公司 10年專業網絡服務供應商

資訊中心

- 直擊網站建設第一現場,掌握全球化的消息 -

當前位置 : 首頁 > 資訊中心 > 為什么Dart比JavaScript更酷

為什么Dart比JavaScript更酷

分享 2012.01.12 瀏覽次數:12486次

為什么Dart比JavaScript更酷

標簽:Dart  JavaScript  網站設計

導讀:Google是家充滿創新力的公司。他們不喜歡Javascript了,于是自己推出了Dart。不負眾望,Dart在今年的編程語言排行榜中成了一匹黑馬,一經發布便竄到了排行榜107位,次月居然到了63,速度驚人。作為新的結構化Web編程語言,它真的能代替JavaScript嗎?本文作者將 Dart與JavaScript進行對比,現CSDN研發頻道對此文進行簡譯,與開發者們共同探討。

根據原文編譯的內容如下:

Dart 是Google推出的新的結構化Web編程語言。我對它一見鐘情。有人對我說,你需要深度剖析JavaScript,否則你無權評論它的優缺點。坦誠的說,我算不上一位JavaScript Ninja,但我堅信一種語言應該簡單易學,容易理解,語言結構方面盡量合理。

一直以來,我都在實踐中解決JavaScript的不足之處,我也承認JavaScript有很多不錯的功能。但我不得不說,每天與它工作時我得非常非常小心。這一點很是糟糕,編程語言應該得到程序員的友好支持,而非相反。

下面是JavaScript的不足之處,這也是迫使我轉投Dart的原因。

1. Dart uses only one falsify (Dart只使用一種否定條件)

看到這個標題,會容易想到false, null, undefined, “”, 0, NaN 作為否定條件,你可以這樣寫:

    var a = null;  
    if(!a) {  
    // do  
    }  

在Dart只有唯一的false,可以寫成這樣:

    var a = null;  
    if(a != null) {  
       // do  
    }

雖然可以使用情形6中的否定條件,前提是你要好好了解它們。

2. Dart can work with types, If you want it(只要你想,Dart可以使用類型)

JavaScript開發者常說types(類型)會抹殺了靈活性,或許這是真的,但是太多的靈活性會毀掉你的軟件。另一方面,Dart可以很好的用types編程。

3. You need a framework to work proper with DOM (你需要一個框架來解析DOM)

在JavaScript中,你可以這樣寫:

    getElementsById()  
    getElementsByTagName()  
    getElementsByName()  
    getElementsByClassName()  
    querySelector()  
    querySelectorAll()  
    document.links  
    document.images  
    document.forms  
    document.scripts  
    formElement.elements  
    selectElement.options

這樣不是很完美嗎?使用jQuery來幫助我們。也并不是非要從選擇框架來解析DOM。

但Dart有了jQuery,只需以下2點:

    elem.query('#foo');  
     
    elem.queryAll('.foo');  
     

4. Classes and Interfaces (類和接口)

當Java開發人員使用JavaScript時,他們經常嘗試著去編寫代碼,就像編寫Java代碼一樣。有構造函數和類等元素。當然,這不是JavaScript的編程方式。它是基于以一切項目為標準。

5. Inheritance(繼承)

Rauschmayer 博士發表過一篇優秀的博文,他在博客中解釋了為什么JavaScript inheritance很簡單。但值得注意的是:他的建議不是JavaScript inheritance的唯一途徑。Frameworks Prototype和jQuery創建了“擴展”方法。Rauschmayer博士使用__proto__,你可以使用prototype keyword ,當然,你也可以實現自己的擴展機制,簡單復制每個屬性。用Google搜索“javascript object extends”彈出的所有結果,有各種各樣的方法,只為實現一個目標:擴展。

Dart里有classes概念和“extends”關鍵詞,非常簡單。

6. Global namespace (全域名空間)

在 JavaScript中你需要注意,不要攪亂全域名空間,老實說,這個很容易。如果錯過了“this”或“var”變量,導致每個腳本都能訪問它,這是非常可怕的,盡量別搞亂這些。這里要感謝Stoyan Stefanovs Book JavaScript Patterns使我認識到保持域名空間清潔的重要性。現在我感覺好多了,同時也易于控制。

在Dart里擴展了“library”范圍,意味著你有一個關鍵的“library”僅對外開放的部分。此外,每一個Dart腳本能獨立執行,有一個活動區域。使用Dart你還應該思考 visibility和libraries,這將成為你學會Dart的一種簡易方式,,而不需要從其他書籍中獲知。

7. Dart knows concurrency (Dart支持并行)

使用JavaScript不是真的并行,即使是但也需要你做出一個“jQuery異步需求”,你依然在“thread”中運行,你可以從V8中獲得更多,你也可以通過HTML5和webworkers來解決。

Dart支持Isolates,這有點像Erlang,它們之間可以相互溝通,如果其中一個失敗了,另一個Isolate可以再次啟動。當然這使Dart成為一個非常不錯的服務端編程。

8. JavaScript doesn’t know foreach (JavaScript不支持foreach)

你可以擴展Object或者Array.prototype,或者也可以采用以下數組:

    for (var i = 0; i < elements.length; i++) {  
      // do something  
    }

你還可以設置objects:

    for (key in elements) {  
    alert(elements[key]);  
    }  

而不幸的是Douglas Crockford(在JavaScript界一位很了不起的人物),不建議使用此語句。原因:你的結果不是排序的,我可能會從prototype chain或者function names命名。當然你也可以過濾hasOwnProperty。最后,你應該看下框架文件,如果他們提供了相應內容。

而在Dart中:

    for (element in elements) {  
    // do something  
    }  

就是這么簡單!

9. Weirdness intializing arrays(數組初始化)

看看這個代碼:

    var a1 = new Array(1,2,3,4,5);  
    var a2 = new Array(5);  
     

a1有5個元素的數組:[1,2,3,4,5]

a2具有5個元素的數組:[undefined,undefined,undefined,undefined,undefined]

而Dart就更加簡潔:

    List a1 = [1,2,3,4,5];  
     
    List a2 = new List(5);  
     

同樣的,a1包含5個不同的元素數組,a2包含5個元素數組。此外,你還可以獲得一個不錯的功能“removeRange”可支持排序。

10. undefined和null

       當使用JavaScript時你需要學習很多,該類型值:undefined。它可被重寫。你可以通過各種方案獲得,例如:假如你調用返回,但不返回任何數值,在鏈接的頁面上,你可以看到如何處理一個可能被覆蓋未定義的值。Null可以通過undefined在多種方案下調用。

而Dart只需要一個null。

結束語:

       當然,JavaScript也有很多好的部分,比如一些不錯的模式,但目前來說,使用Dart也能實現這些功能。我認為Dart更優雅,更容易閱讀。或許,JavaScript的一些鐵桿開發者不這么認為,沒關系,只要喜歡你可以繼續使用JavaScript。但我想,Dart或許會在另一面成為主流。

       更多有關杭州網站建設資訊:12個免費用戶界面網站建設原型的 PSD 設計稿   返回公司新聞

    最新新聞

    與互聯網同行,實時掌握網建行業最新動態

  • 廚房類APP開發

    日期:2021-02-26瀏覽次數:5408次

最新網站案例

洞悉市場趨勢演變讓傳播回歸社會

    免費獲取網站建設與網絡推廣方案報價

    • 關于我們

      杭州帷拓科技有限公司,是一家新型的全案網絡開發公司,作為以互聯網高端網站建設、APP開發、小程序開發為核心的專業網絡技術服務供應商,帷拓科技致力于全面分析市場環境、衡量與預測市場需求、整合區別于行業競爭對手的絕對優勢,結合品牌理念深度挖掘項目優勢和產品價值,提升客戶品牌認知、認可度。

    • 我們的客戶

      帷拓科技歷經十年沉淀,與國內外上千家客戶達成合作關系,其中穩定合作的公司有:浙江華為、浙江移動、浙江5G產業聯盟、浙江省社科院、綠城足球俱樂部、娃哈哈雙語學校、健康中國杭州峰會、科雷機電等,帷拓科技始終堅持“帷有專業,才能拓展無限”的服務理念,堅持“認真堅持細節”的優質服務理念,不斷完善自身,成就企業,最終實現共贏。

    • 我們的業務

      帷拓科技主營業務范圍包含互聯網高端網站建設、APP開發、小程序開發、商城網站建設、公眾號運營以及數字營銷等,涵蓋了服務、房產、數碼、服裝、物流貿易等行業,根據品牌現狀,為每個客戶量身定制項目整體服務方案,以敏銳的市場洞察力、創新的市場策劃能力,全面把握市場變化,為客戶實現從企業到消費者的價值轉換。

    Designerpart Designagentur
    Designerpart Designagentur
    Designerpart Designagentur
    Designerpart Designagentur
    Designerpart Designagentur
    Designerpart Designagentur
    主站蜘蛛池模板: 亚洲另类无码专区丝袜| 中文字幕精品av乱码在线| 2021亚洲va在线va天堂va国产| 中文字幕av在线一二三区| 影音先锋啪啪av资源网站| 黑人入室粗暴人妻中出| 亚洲国产成人久久一区久久| 亚洲精品久久无码av片 | 少女高清影视在线观看动漫| 免费又黄又爽又猛的毛片| 国产午夜精品无码一区二区| 好想被狂躁无码视频在线字幕| 成人污视频| 国产人妻无码一区二区三区18| 国产成本人片无码免费2020 | 欧洲美熟女乱av亚洲一区| 芙宁娜被?吸乳羞羞A片| 久久精品丝袜高跟鞋| 欧美一区二区三区成人片在线| 中文字幕精品亚洲无线码二区| 国产亚洲精品久久精品69 | 亚洲尺码电影av久久| 天天做天天爱夜夜爽毛片| ww久久综合久中文字幕| 无码人妻精品一区二区在线视频| 99精品国产一区二区三区不卡| 中文有无人妻vs无码人妻激烈| 成人h动漫精品一区二区| 人人做人人妻人人精| 无码人妻aⅴ一区二区三区玉蒲团| 老熟女激烈的高潮| 国产成人精品男人的天堂| 午夜性刺激在线观看| 中国少妇| 毛片免费视频在线观看 | 在线看片福利无码网址| 国产片在线天堂av| 成年女人爽到高潮喷视频| 强奷乱码中文字幕熟女导航| 亚洲精品乱码久久久久久蜜桃图片 | 无码午夜福利片|