在学校学习了几年,转眼大三了,明年大四即将出去找工作,似乎在学校C#、Java、jsp等都学了,但是似乎自己动手做系统的时候,感觉有时候还是欠缺,今天去图书馆找了本Ajax的书,其实之前也接过类似的书,但是没有好好研究,这次下定决心,好好研究下。
学习Ajax之前当然要好好补习一下自己的Javascript知识,其实自己有面向对象的语言(C#、Java)的基础,学起来还是蛮顺的。
Javascript是一种基于面向对象的语言,不过却不是面向对象(OOP)的,javascript有许多方面类似oop的,但它对于传统的oop技术的支持却是很有限的。例如,类成员的可见性只能通过一种受限的方式实现。不管怎么说,在javascript中创建类是可能的,甚至对类的继承还提供了一些基本的支持。
1.常用的javascript方法
document.write("Text");
这个方法把给定的文本输出到浏览器的窗口上。
Window.alert("Text");
这个方法打开一个模式窗口以显示给定的信息。
2.变量
javascript使用var关键字来声明变量。他们没有一个固定的数据类型,而且在运行时还能够更改其类型。
var i=0; //创建一个变量
i = "javascript"; //讲变量的值设置为一个字符串
i = false; //讲变量的值设置为布尔类型
3.数组
数组时含有一组值的变量,不过由于javascript不是强类型的,因此一个数组中可以含有不同的数据类型。创建数组有两种方法,一种是使用new Array()并提供一些值。数据的索引还是从0开始的。
var days=new Array("sunday","monday","tuesday","wednesday","thursday","firday");
days[6]="saturday"; //第一种声明数组的方法
var days=["sunday","monday","tuesday","wednesday","thursday","firday"];//第二种声明数组的方法 (推荐使用)
4.控制结构
if,if……else……,switch和C#等基本一致,但是javascript中的for……in循环与C#中的foreach()基本一致,下面是例子:
var days=["sunday","monday","tuesday","wednesday","thursday","firday"]; for(var day in days) { document.write(days[day]+"<br/>"); }
5.内建方法、自定义函数以及事件处理
函数通过function关键字来定义。由于不能指定返回值的数据类型,因此,也没有void关键字。所以函数也是不必有返回值的。如果一定要有返回值,可以使用return语句。
编写一个自定义的函数:
function HtmlEscape(s){ var result = s.replase(/&/g,"&"); .repalse(/</g,"<"); .replase(/"/g,"""); .replase(/>/g,">"); .replase(/'/g,"'"); return result; } document.write(HtmlEscape("<hr/>"));
虽然javascript并不支持函数的重载,不过函数的参数数量却不是固定的。如果函数的参数数量比调用者提交的还要多,那么多出的参数会被赋值为null.
然而,如果提交的参数比预期的要多,那么要访问多出的参数时就要用到arguments属性了(<Functionname>,arguments的简化形式)。
编写一个可变参数数量的函数:
function OutputList(){ document.write("<ul>"); for(var i=0;i<arguments.length;i++){ document.write("<ui>"+arguments[i]+"</li>"); } document.write("</ul>"); } OutputList("one","two","three");