这里有新鲜出炉的 Javascript 教程,程序狗速度看过来!
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
先看一下 JSON(javascript object notation) 对象,JSON 是一种脚本操作时常用的数据交换格式对象,相对于 XML 来说 JSON 是一种比较轻量级的格式,在一些 intelligence 的 IDE 中还可以方便的通过点操作 JSON 对象中的成员。
javascript 是基于对象的编程语言。从 window 到 document,从方法到类,从 object 到 Array 都是对象。
JSON 是一种键 / 值对方式来描述内部成员的格式,其内部成员可以是几乎任何一种类型的对象,当然也可以是方法、类、数组,也可以是另外一个 JSON 对象。
- varstudent = {
- Name: "张三",
- Age: 20,
- Hobby: "读书",
- Books: [
- {
- BookName: "C#",
- Price : 70
- },
- {
- BookName: "Java",
- Price : 70
- },
- {
- BookName: "Javascript",
- Price : 80
- }
- ]
- };
上面代码用 JSON 对象描述了一个学生的信息,他有姓名、年龄、爱好、书集等。在访问该学生对象时,可以通过 student 变量来操作学生的信息。
- varstuInfo ="姓名:"+ student.Name +
- ",年龄:" + student.Age +
- ",爱好:"+ student.Hobby +
- ",拥有的书:" +
- student.Books[0].BookName +"、"+
- student.Books[1].BookName + "、" +
- student.Books[2].BookName;
- alert(stuInfo);
这样的操作方式风格和 C# 也非常相像。以上的代码是静态的构造出了学生对象,学生对象的结构就确定了。在其它的编程语言中一般对象结构一旦确定就不能很方便的进行修改,但是在 javascript 中的对象结构也可以方便的进行改动。下面为 student 对象添加一个 Introduce 方法来做自我介绍。
- student.Introduce =function() {
- var stuInfo = "姓名:" + this.Name +
- ",年龄:"+this.Age +
- ",爱好:" + this.Hobby +
- ",拥有的书:"+
- this.Books[0].BookName + "、" +
- this.Books[1].BookName +"、"+
- this.Books[2].BookName;
- alert(stuInfo)
- };
- student.Introduce();
student 对象原来并没有 Introduce 方法,第一次为 student.Introduce 赋值会在 student 对象中创建一个新的成员,后面如果再为 student.Introduce 赋值则会覆盖上一次所赋的值。当然我们这的值是一个 function。也可以用类似索引的方式来添加成员。
- student["Introduce"] =function() {
- ……
- };
- student.Introduce();
当然添加的成员也可以删除掉。删除掉之后则成为 undefined,再访问该成员时则不支持。
- delete student.Introduce;
- student.Introduce();
javascript 是弱类型的语言,有的时候即使有 IDE 的辅助也不能很清楚知道当前所操作对象的成员,可能会需要对当前对象的属性进行查询,这时候我们可以使用 for 循环来完成。
- for(varkeyinstudent) {
- document.write(key + " : " + student[key] + "<br />");
- };
对 student 对象进行遍历时,是对 student 的成员进行遍历,这里的 key 则对应 student 对象中的每一个成员属性名称。student[key] 则是对 student 某个成员进行访问。如果想调用 student 的 Introduce 方法也可以用索引的方式,student["Introduce"]()。
上面简单的聊了聊 JSON 对象,总的来说 JSON 是很方便的数据打包方式。javascript 中的其它的对象,不论是浏览器对象,还是自定义类型所创建的对象或者是数组等等,它们也都具有 JSON 对象类似的操作方式。我们可以直接用索引的方式为 window 添加成员,我们也可以为数组添加字符串形式的下标把它当成 Hashtable 来操作。
- window["Hi"] =function() {
- alert("helloworld!");
- };
- window["Hi"]();
- var array = [];
- array["一"] ="A";
- array["二"] = "B";
- array["三"] ="C";
- array["四"] = "D";
- alert(array["一"] + array["二"] + array["三"] + array["四"]);
把数组当成 Hashtable 来操作时,要注意,并非是为数组添加数组元素,而是在数组对象中添加新的属性成员。而且如果 for(var key in array) 循环遍历数组对象的话,key 得到的却不是 array 对象的属性名称,而是数组元素的索引号。
下一次聊聊 function。
来源: http://www.phperz.com/article/17/0421/286624.html