AJAX学习之序列一:JavaScript关键特征,你了解几个?

来源:互联网 发布:史明克固体水彩淘宝 编辑:程序博客网 时间:2024/06/05 22:37

 

JavaScript 相信做web编程的程序员没有人不熟悉。不管是.net还是JavaEE,作为前端的重要技术到处都会用到。大学开始学web编程的时候,感觉JavaScript这个玩意挺神奇的。能用来写一些简单验证,如判断空、邮箱格式判断、用正则表达式去空格等。大家肯定都写过JS,但是真正去研究JS的人不知道有多少。以我个人经验,我总是能在网上找到答案,并能实现一些想要的功能。但是很惭愧对JS这门语言真不能说是特别的了解。 AJAX的风行,ext,dwr,jquery等各种js的框架越来越多。JS也可以实现面向对象的一些特征。终于还是有必要对这个使用多年脚本做深入学习。今天算是AJAX基础篇的第一篇,JavaScript的关键特征。

主要内容是看<Ajax in action>这本书对于JS的介绍,同时结合自己的理解。JavaScript的主要特征有(很关键哦,不知道你理解几条)

1.         弱类型

变量仅仅声明为变量,而不是整数,字符串或者特定类的对象。

Var object 而不是 int a; String b;

经常的变量定义如下:

var length=10;

var memberId=“abingsky”;

var obj=new Object();

var date = new Date();

var strArr = new Array();

var companyIds=document.getElementById("companyIds").value;

可以从这一点看出来JavaScript变量的定义语法有多松散,弹性有多大。对于习惯了JavaC#的面向对象的严格类型限制的程序员来说,多少有点不习惯。由于Javascript是一种动态解释的,所以在运行时会根据值来正确的解释。

2.         动态解释

JS不需要预先编译。只是存储成文本,在程序运行时由专门的JS引擎解释为机器指令。

3.         函数是正常的对象

Java对象的方法与拥有它的对象绑定在一起,只能通过该对象来调用,而Javascript的函数可以附加到对象上,使得它们的行为类似于方法。但是它们可以在上下文中调用,并且在运行是附加到其他对象身上。我觉得这也是JS语法松散的一个表现,所有的方法可以像变量一样被赋予不同的对象。例如要在页面装载后做一些操作,可以动态的将某一个函数对象赋值给window.onload.

Window.onload=function(){

displayDiv=document.getElementById('display');

displayDiv.innerHTML=Hello,World!”;

附几种常见对象的定义方式:

普通对象

Var myObject=new Object();这时候的对象初始化为空,不带有任何属性和方法。可以通过下面方式添加属性和方法:

myObject.shoeSIze=12;

myObject.sayHello=function(){

...

}

数组对象

用中括号括起来

var books=[book1,book2,book3]

JSON对像

myObject.books={

bestSeller:book1,

cookbook:book2,

spaceFilter:book3

}

4.         构造函数、类和prototype属性

所有的Javascript对象是相同基类的实例。而这个基类就是有能力在运行时将成员字段和函数与自己绑定在一起的类。所以可以在运行时给对象分配任意属性。

Function MyObject(name,size){

this.name=name;

this.size=size;

}

var myObj=new MyObject”ttt”122

设置为this关键字的属性的任何东西随后都可以作为对象的一个成员使用。(任何一个函数都可以通过new来调用,而生成的对象的属性关键要看该函数里面对于this的调用)

 

prototype:定义了将自动绑定在对象上的属性和函数。Prototype在一定程度上为程序员提供了面向对象非常想要的规律性和熟悉感。个人感觉是JavaScript非常精髓的一个地方。

prototypeJavaScript对象的一个属性。函数和属性可以与构造函数的prototype关联起来。然后prototypenew关键字协同工作,当使用new调用函数时,函数prototype的所以属性和方法会附加到结果对象上。

Function MyObject(name,size){

this.name=name;

this.size=size;

}

MyObject.protype.tellSize=function(){

alert(size of”+this.name+is +this.size);

}

prototype机制也可以与内建类协同工作。DOM节点在IE不能扩展,但在其他的核心类在所有主要的浏览器中都是可以扩展的。内建类包括(Array,Object,Date)。如可以为Array类定义一些有作用的帮助函数:

Array.prototype.indexof=function(obj){

var result=-1;

for(var i=0;i<this.length;i++){

if(this[i]==obj){

result=i;

break;

}

}

return result;

}

这样定义之后Array类就有了一个方法indexof,和java里的基本一样。

 

以上是关于JavaScript几个关键特点的理解,可参考Ajax in action这本书里面的附录介绍。不知道你对JavaScript理解多少,一起来学习吧。

 

原创粉丝点击