Ajax In Action 附录B B1

从界面设计到业务逻辑的实现,很多都涉及JavaScript

这个附录的作用不是教你如何使用JavaScript编程,现在已经有很多在这方面讲得比较好的书和文章。我在这里想说明的是几个能够帮助JavaC#程序员用相对简单的方法来快速掌握JavaScript编程。如果你是一个拥有面向对象设计背景的企业程序员,在刚接触JavaScript的时候有可能会受以前的Java 或者C#的经验影响,有可能觉得自己并不能很好地掌握它用它来工作。当然,以前我也是这样,所以我现在用同样的方法来启蒙别人。JavaScript能做一些JavaC#做不了的事情,其中有一些能够帮助你写出更好的代码,而另一些则会让你反其道而行之。对于这两种情况,我们都应该了解,不管是更好的利用这些技巧还是不自觉地避免。如果你再用过JavaC#这些面向对象语言的基础上来学习Ajax,我希望这篇附录能够像几年前对我一样对你也有用。

 

B1 JavaScript不是Java

从名字上来看,JavaJavaScript更像是总的与分支的关系,JavaScript在最后一刻被Netscape的市场补从“livescript”重新命名,然而比并不像大多数人所认为的那样,JavaScript并不是C语言家族的一员。它与SchemeSelf等功能性语言相差很多,但是又跟Python有很多相似点。然而,它被以Java命名,并且从字面看也有很多地方与Java相似。在有些地方,它与Java类似,但在有些地方与Java完全不同。主要的差异如表B.1所示。

 

B.1  JavaScript的主要特征以及含义

特征

含义

变量松类型

变量只被声明为变量,不是integer,string和对象或者是指定的类。对同一变量可以进行不同类型的赋值。

代码动态编译

在运行的时候,代码以文本格式存储并且在程序运行的时候编译成机器码,这与预编译语言Java,C,C#相反,用户基本可以看到Ajax的源代码。而且,允许别的语言动态生成所需代码,不用再次编译成字节码。

JavaScript的函数是一类对象

Java对象的方法都是属于拥有它的对象,并且只有通过这个对象才能进行访问,JavaScript的函数可以任意给对象,并且像方法一样执行,但是他们还可以在其他上下文中被其他对象调用。

JavaScript的对象基于原型

Java, C++还有 C#的对象都有一个固定的类型,有超类,虚拟超类,或者接口,这些严格的定义了它们的功能。 JavaScript的对象只是对象,其实是一个关联的数组,在JavaScript中可以使用prototype来效仿Java,但是这种相似性只是表面的。

这些区别允许语言可以通过不同的方式被利用,但是也为一些恶作剧开启了后门。如果你是一个聪明的严谨的程序员,那你就可以利用这些来做了不起的事情,而且可能只需要几百行代码。

我试过很多次,最后得到一个结论就是让事情变得简单总是好的。如果你正在一个团体内工作的话,如果技术领导觉得有必要的话,应该将前面的内容写入编码规约或者是指导手册里面。还有需要知道这些区别以及技巧的第二个原因是,浏览器会在内部使用一些上面的规则,所以有必要理解这些以便能在调试程序的时候节省时间和精力。尤其是,我发现在知道那些表面相似点只限于表面的情况下,对知道在哪些地方代码不会像Java一样运行很有用。所以继续读吧,然后看看JavaScript的对象究竟是怎么工作的,它们是怎样由域和函数组成,JavaScript的函数又究竟能干什么。

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值