为何Dart比JavaScript更酷

发布时间:2025-10-11 浏览次数:124

为何Dart比Javascript更酷

标签:Dart Javascript 网站建设

导读:谷歌是家充满革新力的公司。他们不喜欢Javascript了,于是自己推出了Dart。不负众望,Dart在今年的编程语言排名中成了一匹黑马,一经发布便窜到了排名107位,次月居然到了63,速度惊人。作为新的结构化Web编程语言,它真的可以代替Javascript吗?本文作者将 Dart与Javascript进行对比,现CSDN研发频道对此文进行简译,与开发者们一同分析。依据原文编译的内容如下:Dart 是谷歌推出的新的结构化Web编程语言。我对它一见钟情。有人对我说,你需要深度分析Javascript,不然你无权评论它的优势和弊端。坦诚的说,我算不上一位Javascript Ninja,但我坚信一种语言应该简单易学,容易理解,语言结构方面尽可能合理。一直以来,我都在实践中解决Javascript的不足之处,我也承认Javascript有不少很好的功能。但我不能不说,天天与它工作时我得很很小心。这一点非常是糟糕,编程语言应该得到技术员的友好支持,而非相反。下面是Javascript的不足之处,这也是迫使我转投Dart是什么原因。
1. Dart uses only one falsify (Dart只用一种否定条件)看到这个标题,会容易想到false, null, undefined, , 0, NaN 作为否定条件,你可以如此写: var a = null;

if {

// do

}

在Dart只有唯一的false,可以写成如此:

var a = null;

if {

// 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;

elem.queryAll;

4. Classes and Interfaces (类和接口)当Java开发职员用Javascript时,他们常常尝试着去撰写代码,就像撰写Java代码一样。有架构函数和类等元素。当然,这不是Javascript的编程方法。它是基于以所有项目为标准。
5. Inheritance(继承)Rauschmayer 博士发表过一篇出色的博文,他在博客中讲解了为何Javascript inheritance非常简单。但值得注意的是:他的建议不是Javascript inheritance的唯一渠道。frameworks Prototype和jQuery创建了扩展办法。Rauschmayer博士用||proto||,你可以用prototype keyword ,当然,你也可以达成我们的扩展机制,简单复制每一个属性。用谷歌搜索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 doesnt know foreach (Javascript不支持foreach)你可以扩展Object或者Array.prototype,或者也可以使用以下数组: for {

// do something

}你还可以设置objects: for {

alert;

} 而不幸的是Douglas Crockford(在Javascript界一位非常了不起的人物),不主张用此语句。缘由:你的结果不是排序的,我或许会从prototype chain或者function names命名。当然你也可以过滤hasOwnProperty。最后,你应该看下框架文件,假如他们提供了相应内容。而在Dart中: for {

// do something

} 就是这么简单!9. Weirdness intializing arrays看看这个代码: var a1 = new Array;

var a2 = new Array;

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;

同样的,a1包括5个不一样的元素数组,a2包括5个元素数组。除此之外,你还可以获得一个很好的功能removeRange可支持排序。

10. undefined和null

当用Javascript时你需要学习不少,该种类值:undefined。它可被重写。你可以通过各种策略获得,比如:倘若你调用返回,但不返回任何数值,在链接的页面上,你可以看到怎么样处置一个可能被覆盖未概念的值。Null可以通过undefined在多种策略下调用。

而Dart仅需一个null。

结束语:


当然,Javascript也有不少好的部分,譬如一些很好的模式,但现在来讲,用Dart也能达成这类功能。我觉得Dart更高雅,更容易阅读。可能,Javascript的一些铁杆开发者不这么觉得,没关系,只须喜欢你可以继续用Javascript。但我想,Dart可能会在另一面成为主流。

更多有关杭州网站制作资讯:
12个免成本户界面网站制作原型的 PSD 设计稿 返回公司新闻。

旺道seo优化
旺道seo优化,为企业提供网站SEO优化,百度SEO排名,SEO网站推广,网站排名优化,SEO外包公司,SEO网站优化,百度关键字排名,网站建设等服务,最新SEO培训教程,为企业制定全面的整站SEO优化策略,帮助企业快速提升网站排名。
旺道seo优化是值得信赖的网站建设公司。多年来持续为众多企业提供网站建设,网站制作,网站设计,网站优化,网站推广,网络营销,品牌推广等互联网业务已经有18年之久,让企业与用户快速连接起来。
推荐阅读