美造人公司作为品牌商,也希望我们能以优质的产品回馈广大消费者,材料选择上,经达八个月的实验调试,最终也是希望以好的产品走向市场,并能得到娃友的认同,企业走得长远与否,最终也是靠品质取胜。...
JavaScript:世界上误解最深的语言
JavaScript,或者叫 Mocha,或者叫 LiveScript,或者叫 JScript,又或者叫 ECMAScript,是世界上最流行的编程语言之一。事实上世界上的每一台个人电脑都安装并在频繁使用至少一个JavaScript解释器。 JavaScript的流行完全是由于他在WWW脚本语言领域中的地位决
, 亦称为 Mocha、LiveScript,也叫做JScript ECMAScript,是世界上流行的编程语言之一。事实上世界上差不多每台个人电脑都至少安装了一个JavaScript解释器。JavaScript的流行完全在于它作为WWW的脚本语言的角色。
不管它有多么流行,极少有人了解JavaScript是一个十分动态的通用面向对象编程语言。这怎能成为一个秘密呢?为什么这个语言如此被误解?
关于名字
这个Java-前缀暗示了JavaScript和Java的关系,也就是JavaScipt是Java的一个子集也就是不如Java强大。看上去这个名称就故意制造混乱,然后随之而来的是误解。JavaScript并不是解释型的Java语言。Java是解释型的Java,JavaScript是另一种语言。
JavaScript和Java的语法很相似,就象Java和C的语法相似一样。但它也不是Java的子集就像Java也不是C的子集一样。在应用上,Java要远比原先设想的好得多(Java原称Oak)。
JavaScript并不是由Sun公司──Java的老家──开发的。JavaScript是由Netscape公司开发。它本来叫做LiveScript,这个名字并不是那样容易混淆。
这个-Script 后缀暗示了它不是一个真正的编程语言──脚本语言好象不是真正的编程语言。但其实这是一个专长的问题。相对C而言,JavaScript牺牲性能但带来更强的表达力和动态性。
披着C外衣的Lisp
JavaScript的C风格的语法,包括大括号和复杂的for 语句,让它看起来好象是一个普通的过程式语言。这是一个误导因为JavaScript和函数式语言如Lisp和Scheme有更多的共同之处。它用数组代替了列表,用对象代替了属性列表。函数是第一型的。而且有闭包。你不需要平衡那些括号就可以用lambda算子。
思维定势
JavaScript是原被设计在Netscape Navigator 中运行的。它的成功让它成为几乎所有浏览器的标准配置。这导致了思维定势。JavaScript简直就是程序语言中的 (一位曾扮演超人的演员,但后来死于枪杀,被官方认为自杀,细节不详──译注)。其实,JavaScript也适合很多和Web无关的应用程序。
不断改变的目标
JavaScript的第一个版本功能十分弱。它缺少异常处理、内部函数和继承。而它的现在的形态,它已经是一套完整的面向对象语言。但很多看法都是基于认为它的形式不成熟。
管理这个语言的ECMA委员正在开发扩展 ,原意是很好,而这样却会加剧这个语言最严重的问题:版本太多了。这也造成了混淆。
设计错误
没有什么编程语言是完美的,JavaScript也有它的设计上的错误,如的重载同时表示加和带类型转换的串连接,和有错误倾向的 with 语句应该避免使用。保留字策略过于严格。分号的加入是一个很大的错误,正则表达式的记号也是。这些错误会导致编程错误,并把语言的设计作为整个叫做问题。幸运的是,这些问题可以用一个很好
这个语言的设计从整体上看还是十分健全的。但很令人惊讶的是, ECMAScript委员会好象根本不想修正这些错误。也许他们对重新制作一个更感兴趣。
肮脏的实现
JavaScript早期实现错误百出。这对该语言带来了很恶劣的影响。更糟糕的是,这些实现还被嵌入的更错误百出的浏览器中。
拙劣的书籍
几乎所有的书籍都十分恐怖。里面到处是错误、蹩脚的例子还自创一套拙劣的惯例。语言中重要的特性却常常解释不好,或者干脆完全不写。我翻阅了几十本JavaScript的书,我只推荐两本: by David Flanagan and by Danny Goodman. 都来自于 .
不够标准的标准
该语言的官方标准规格说明书由ECMA发布。该规格书也是质量奇差。它难以阅读也难以理解。它也对拙劣书籍的问题作出了自己的一份“贡献”,因为作者无法使用这个标准文档来增加他们对语言的认识。ECMA和TC39委员会应该为此感到深深的羞愧。
业余爱好者
大部分写JavaScript的人都不是程序员。他们缺乏训练写好程序的修养。JavaScript有如此丰富的表达能力,他们可以任意用它来写代码,以任何形式。这给JavaScript带来了一个名声──它是专门为外行设计的,不适合专业的程序员。这显然不是事实。
面向对象
JavaScript是不是面向对象的?它拥有对象,可以包含数据和处理数据的方法。对象可以包含其它对象。它没有类,但它却有构造器可以做类能做的事,包括扮演类变量和方法的容器的角色。它没有基于类的继承,但它有基于原型的继承。
两个建立对象系统的方法是通过继承(是一个……)和通过聚合(有一个……)。JavaScript两个都有,但它的动态性质让它可以在聚合上超越。
一些批评说JavaScript不是真正面向对象的因为它不能提供信息的隐藏。也就是,对象不能有私有变量和私有方法:所有的成员都是公共的。S
。当然,极少有人认识到,因为JavaScript是世界是最受误解的程序嘛!
另外还有批评说JavaScript不能提供继承,。
原文地址:
翻译:
(责任编辑:admin)
- 上一篇:JavaScript开发时的五个小提示
- 下一篇:JavaScript基础知识总结
推荐内容
-
-
很多人一提到成人用品就想到充气娃娃,或者明明看到了实体娃娃了,还一本正经的喊:哇充气娃娃,甚至有娃友还是小白时还被卖家骗过,网上部分无良商家拿充气娃娃冒充实体娃娃出售给娃友,事实上充气娃娃和实体娃娃完全是两件不同的商品。写这篇文章主要是让准...
-
手部是用来抓持工件(或工具)的部件,根据被抓持物件的形状、尺寸、重量、材料和作业要求而有多种结构形式,如夹持型、托持型和吸附型等。...
-
玻璃胶设备|分装机|装箱机-东莞格瑞机械有限公司www.dggreat.cn开通了。...
-
国联 服装 网:微信上怎么卖 衣服 ?没有客源怎么办?现在很多人都做起了微商,既不影响自己的工作又能获得额外收入。但是微信上卖衣服并不是那么好卖的?首先一点你的朋友圈可能没有那么多的好友,还有就是发多了可能会被人屏蔽,面对诸如此类的 问题 ,我...
-
【设计分享】这个栏目 是我们为木头爱好者准备的分享栏目 这里会有 来自我的木头WOODWOOD成员的设计 也会有我们平时学习、生活中看到的 有趣的好玩的有价值的 艺术设计、文学作品、展览展会等等 和木头有关的分享 希望你们在片刻闲暇中遇到喜欢的内容 当然也...