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

24小時(shí)咨詢(xún)電話(huà):0571-88023217機(jī)床網(wǎng)站建設(shè)公司 10年專(zhuān)業(yè)網(wǎng)絡(luò)服務(wù)供應(yīng)商

資訊中心

- 直擊網(wǎng)站建設(shè)第一現(xiàn)場(chǎng),掌握全球化的消息 -

當(dāng)前位置 : 首頁(yè) > 資訊中心 > 為什么Dart比JavaScript更酷

為什么Dart比JavaScript更酷

分享 2012.01.12 瀏覽次數(shù):12562次

為什么Dart比JavaScript更酷

標(biāo)簽:Dart  JavaScript  網(wǎng)站設(shè)計(jì)

導(dǎo)讀:Google是家充滿(mǎn)創(chuàng)新力的公司。他們不喜歡Javascript了,于是自己推出了Dart。不負(fù)眾望,Dart在今年的編程語(yǔ)言排行榜中成了一匹黑馬,一經(jīng)發(fā)布便竄到了排行榜107位,次月居然到了63,速度驚人。作為新的結(jié)構(gòu)化Web編程語(yǔ)言,它真的能代替JavaScript嗎?本文作者將 Dart與JavaScript進(jìn)行對(duì)比,現(xiàn)CSDN研發(fā)頻道對(duì)此文進(jìn)行簡(jiǎn)譯,與開(kāi)發(fā)者們共同探討。

根據(jù)原文編譯的內(nèi)容如下:

Dart 是Google推出的新的結(jié)構(gòu)化Web編程語(yǔ)言。我對(duì)它一見(jiàn)鐘情。有人對(duì)我說(shuō),你需要深度剖析JavaScript,否則你無(wú)權(quán)評(píng)論它的優(yōu)缺點(diǎn)。坦誠(chéng)的說(shuō),我算不上一位JavaScript Ninja,但我堅(jiān)信一種語(yǔ)言應(yīng)該簡(jiǎn)單易學(xué),容易理解,語(yǔ)言結(jié)構(gòu)方面盡量合理。

一直以來(lái),我都在實(shí)踐中解決JavaScript的不足之處,我也承認(rèn)JavaScript有很多不錯(cuò)的功能。但我不得不說(shuō),每天與它工作時(shí)我得非常非常小心。這一點(diǎn)很是糟糕,編程語(yǔ)言應(yīng)該得到程序員的友好支持,而非相反。

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

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

看到這個(gè)標(biāo)題,會(huì)容易想到false, null, undefined, “”, 0, NaN 作為否定條件,你可以這樣寫(xiě):

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

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

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

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

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

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

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

在JavaScript中,你可以這樣寫(xiě):

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

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

但Dart有了jQuery,只需以下2點(diǎn):

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

4. Classes and Interfaces (類(lèi)和接口)

當(dāng)Java開(kāi)發(fā)人員使用JavaScript時(shí),他們經(jīng)常嘗試著去編寫(xiě)代碼,就像編寫(xiě)Java代碼一樣。有構(gòu)造函數(shù)和類(lèi)等元素。當(dāng)然,這不是JavaScript的編程方式。它是基于以一切項(xiàng)目為標(biāo)準(zhǔn)。

5. Inheritance(繼承)

Rauschmayer 博士發(fā)表過(guò)一篇優(yōu)秀的博文,他在博客中解釋了為什么JavaScript inheritance很簡(jiǎn)單。但值得注意的是:他的建議不是JavaScript inheritance的唯一途徑。Frameworks Prototype和jQuery創(chuàng)建了“擴(kuò)展”方法。Rauschmayer博士使用__proto__,你可以使用prototype keyword ,當(dāng)然,你也可以實(shí)現(xiàn)自己的擴(kuò)展機(jī)制,簡(jiǎn)單復(fù)制每個(gè)屬性。用Google搜索“javascript object extends”彈出的所有結(jié)果,有各種各樣的方法,只為實(shí)現(xiàn)一個(gè)目標(biāo):擴(kuò)展。

Dart里有classes概念和“extends”關(guān)鍵詞,非常簡(jiǎn)單。

6. Global namespace (全域名空間)

在 JavaScript中你需要注意,不要攪亂全域名空間,老實(shí)說(shuō),這個(gè)很容易。如果錯(cuò)過(guò)了“this”或“var”變量,導(dǎo)致每個(gè)腳本都能訪(fǎng)問(wèn)它,這是非常可怕的,盡量別搞亂這些。這里要感謝Stoyan Stefanovs Book JavaScript Patterns使我認(rèn)識(shí)到保持域名空間清潔的重要性。現(xiàn)在我感覺(jué)好多了,同時(shí)也易于控制。

在Dart里擴(kuò)展了“library”范圍,意味著你有一個(gè)關(guān)鍵的“library”僅對(duì)外開(kāi)放的部分。此外,每一個(gè)Dart腳本能獨(dú)立執(zhí)行,有一個(gè)活動(dòng)區(qū)域。使用Dart你還應(yīng)該思考 visibility和libraries,這將成為你學(xué)會(huì)Dart的一種簡(jiǎn)易方式,,而不需要從其他書(shū)籍中獲知。

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

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

Dart支持Isolates,這有點(diǎn)像Erlang,它們之間可以相互溝通,如果其中一個(gè)失敗了,另一個(gè)Isolate可以再次啟動(dòng)。當(dāng)然這使Dart成為一個(gè)非常不錯(cuò)的服務(wù)端編程。

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

你可以擴(kuò)展Object或者Array.prototype,或者也可以采用以下數(shù)組:

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

你還可以設(shè)置objects:

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

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

而在Dart中:

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

就是這么簡(jiǎn)單!

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

看看這個(gè)代碼:

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

a1有5個(gè)元素的數(shù)組:[1,2,3,4,5]

a2具有5個(gè)元素的數(shù)組:[undefined,undefined,undefined,undefined,undefined]

而Dart就更加簡(jiǎn)潔:

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

同樣的,a1包含5個(gè)不同的元素?cái)?shù)組,a2包含5個(gè)元素?cái)?shù)組。此外,你還可以獲得一個(gè)不錯(cuò)的功能“removeRange”可支持排序。

10. undefined和null

       當(dāng)使用JavaScript時(shí)你需要學(xué)習(xí)很多,該類(lèi)型值:undefined。它可被重寫(xiě)。你可以通過(guò)各種方案獲得,例如:假如你調(diào)用返回,但不返回任何數(shù)值,在鏈接的頁(yè)面上,你可以看到如何處理一個(gè)可能被覆蓋未定義的值。Null可以通過(guò)undefined在多種方案下調(diào)用。

而Dart只需要一個(gè)null。

結(jié)束語(yǔ):

       當(dāng)然,JavaScript也有很多好的部分,比如一些不錯(cuò)的模式,但目前來(lái)說(shuō),使用Dart也能實(shí)現(xiàn)這些功能。我認(rèn)為Dart更優(yōu)雅,更容易閱讀。或許,JavaScript的一些鐵桿開(kāi)發(fā)者不這么認(rèn)為,沒(méi)關(guān)系,只要喜歡你可以繼續(xù)使用JavaScript。但我想,Dart或許會(huì)在另一面成為主流。

       更多有關(guān)杭州網(wǎng)站建設(shè)資訊:12個(gè)免費(fèi)用戶(hù)界面網(wǎng)站建設(shè)原型的 PSD 設(shè)計(jì)稿   返回公司新聞

    最新新聞

    與互聯(lián)網(wǎng)同行,實(shí)時(shí)掌握網(wǎng)建行業(yè)最新動(dòng)態(tài)

  • 數(shù)控機(jī)床app開(kāi)

    日期:2021-03-17瀏覽次數(shù):5592次

最新網(wǎng)站案例

洞悉市場(chǎng)趨勢(shì)演變讓傳播回歸社會(huì)

    免費(fèi)獲取網(wǎng)站建設(shè)與網(wǎng)絡(luò)推廣方案報(bào)價(jià)

    • 關(guān)于我們

      杭州帷拓科技有限公司,是一家新型的全案網(wǎng)絡(luò)開(kāi)發(fā)公司,作為以互聯(lián)網(wǎng)高端網(wǎng)站建設(shè)、APP開(kāi)發(fā)、小程序開(kāi)發(fā)為核心的專(zhuān)業(yè)網(wǎng)絡(luò)技術(shù)服務(wù)供應(yīng)商,帷拓科技致力于全面分析市場(chǎng)環(huán)境、衡量與預(yù)測(cè)市場(chǎng)需求、整合區(qū)別于行業(yè)競(jìng)爭(zhēng)對(duì)手的絕對(duì)優(yōu)勢(shì),結(jié)合品牌理念深度挖掘項(xiàng)目?jī)?yōu)勢(shì)和產(chǎn)品價(jià)值,提升客戶(hù)品牌認(rèn)知、認(rèn)可度。

    • 我們的客戶(hù)

      帷拓科技?xì)v經(jīng)十年沉淀,與國(guó)內(nèi)外上千家客戶(hù)達(dá)成合作關(guān)系,其中穩(wěn)定合作的公司有:浙江華為、浙江移動(dòng)、浙江5G產(chǎn)業(yè)聯(lián)盟、浙江省社科院、綠城足球俱樂(lè)部、娃哈哈雙語(yǔ)學(xué)校、健康中國(guó)杭州峰會(huì)、科雷機(jī)電等,帷拓科技始終堅(jiān)持“帷有專(zhuān)業(yè),才能拓展無(wú)限”的服務(wù)理念,堅(jiān)持“認(rèn)真堅(jiān)持細(xì)節(jié)”的優(yōu)質(zhì)服務(wù)理念,不斷完善自身,成就企業(yè),最終實(shí)現(xiàn)共贏(yíng)。

    • 我們的業(yè)務(wù)

      帷拓科技主營(yíng)業(yè)務(wù)范圍包含互聯(lián)網(wǎng)高端網(wǎng)站建設(shè)、APP開(kāi)發(fā)、小程序開(kāi)發(fā)、商城網(wǎng)站建設(shè)、公眾號(hào)運(yùn)營(yíng)以及數(shù)字營(yíng)銷(xiāo)等,涵蓋了服務(wù)、房產(chǎn)、數(shù)碼、服裝、物流貿(mào)易等行業(yè),根據(jù)品牌現(xiàn)狀,為每個(gè)客戶(hù)量身定制項(xiàng)目整體服務(wù)方案,以敏銳的市場(chǎng)洞察力、創(chuàng)新的市場(chǎng)策劃能力,全面把握市場(chǎng)變化,為客戶(hù)實(shí)現(xiàn)從企業(yè)到消費(fèi)者的價(jià)值轉(zhuǎn)換。

    Designerpart Designagentur
    Designerpart Designagentur
    Designerpart Designagentur
    Designerpart Designagentur
    Designerpart Designagentur
    Designerpart Designagentur
    主站蜘蛛池模板: 2021精品国产自在现线| 极品熟妇大蝴蝶20p| 女人与牲口性恔配视频免费| 欧美精品无码一区二区三区 | 色窝窝免费一区二区三区| 福利100合集 在线播放| 日本熟妇中文字幕三级| 色五月激情五月亚洲综合考虑 | 狠狠综合久久久久综合网站| 娜娜麻豆国产电影| 欧美freesex黑人又粗又大| 拍国产乱人伦偷精品视频| 三级日本高清完整版热播| 精品亚洲欧美视频在线观看| 东京热tokyo综合久久精品| 久久久久国产精品人妻电影 | 日本肥老妇色xxxxx日本老妇| 成人无码特黄特黄av片在线| 护士人妻hd中文字幕| 久久久国产精品无码一区二区| 中文字幕巨大的乳专区| 国产精品国产三级国产剧情| 日日碰狠狠躁久久躁96| 粉嫩极品国产在线观看| 精品人妻无码一区二区三区9 | 少妇被又大又粗又爽毛片| 久久精品国产久精久精| 亚洲精品久久久蜜桃| 亚洲永久无码3d动漫一区| 风间由美性色一区二区三区| 亚洲国产欧美日韩精品一区二区三区| 国产精品_国产精品_k频道| 大肉大捧一进一出好爽视频| 国产强伦姧在线观看| 麻豆人妻少妇精品无码专区| 精久国产av一区二区三区孕妇| 日日躁夜夜躁狠狠躁超碰97| 产后漂亮奶水人妻无码| 人妻无码精品久久亚瑟影视| 粗大的内捧猛烈进出小视频| 色欲香天天综合网站|