alert(function sum(i1, i2) {
return i1 + i2;
} (100, 10));
注解:C#中匿名函数使用委托来调用。
JS面向对象基础
(1) JavaScript中没有类的语法,是用函数闭包(closure)模拟出来的,下面讲解的时候还是用C#中的类,构造函数等概念,JavaScript中string,date等”类”都被叫做”对象”,JavaScript中声明类(类不是类,是对象)。
(2)
复制代码 代码如下:
function Person(name, age) { //声明一个函数,当成类用
this.Name = name;
this.Age = age;
this.SayHello = function () {
alert("你好,我是" + this.Name + ",我今年:" + this.Age + "岁了");
}
}
var p1 = new Person("韩迎龙", "23");
p1.SayHello();
(3) 必须要声明类名,function Person(name,age)可以看做是声明构造函数,Name,Age这些属性也是使用者动态添加了。
Array()对象
(1) JavaScript中的Array对象就是数组,首先是一个动态数组,而且是一个像C#中数组ArrayList,Hashtable等的超强综合体。
(2)
复制代码 代码如下:
var names = new Array();
names[0] = "韩迎龙";
names[1] = "得到";
names[2] = "说的";
for (var i = 0; i < names.length; i++) {
alert(names[i]);
}
(3) 无需预先制定大小,动态。
Array()练习1
(1) Array练习,求出一个数组中的最大值。
复制代码 代码如下:
<script type="text/javascript">
function MyMax(arr) {
var max = arr[0];
for (var i = 0; i < arr.length; i++) {
if (arr[i] > max) {
max = arr[i];
} }
return max;
}
var arr = new Array();
arr[0] = 20;
arr[1] = 10;
arr[2] = 34;
alert(MyMax(arr));
</script>
Array()练习2
(1) 将一个字符串数组的元素的顺序进行反转,{3,9,5,34,54}{54,34.5.9.3}。不要使用JavaScript中的反转函数,提示:第i个和第length-i-1进行交换,定义函数。
复制代码 代码如下:
<script type="text/javascript">
function MyReverse(arr) {
for (var i = 0; i < arr.length / 2; i++) {
var temp = arr[i];
arr[i] = arr[arr.length - i - 1];
arr[arr.length - i - 1] = temp;
}
}
var arr = new Array();
arr[0] = "3";
arr[1] = "9";
arr[2] = "5";
arr[3] = "34";
arr[4] = "54";
alert(arr);
MyReverse(arr);
alert(arr);
Array()练习3
(1) 将一个字符串数组输出为|分割的形式,比如:韩迎龙|试试|订单。不要使用JavaScript中的Join函数,arr.join(1)将数组用分割符链接成一个字符串。
复制代码 代码如下:
<script type="text/javascript">
function MyJoin(arr) {
if (arr.length <= 0) {
return;
}
var s = arr[0];
for (var i = 1; i < arr.length; i++) {
s = s + "|" + arr[i];
}
return s;
}
var arr = new Array();
arr[0] = "韩迎龙";
arr[1] = "试试";
arr[2] = "订单";
alert(MyJoin(arr));
//第二种方法
alert(arr.join("|"));
</script>
Array的字典用法
(1) JS中的Array是一个宝贝,不仅是一个数组,还是一个Dictionary,还是一个Stack。
(2)
复制代码 代码如下:
var names = new Array();
names["人"] = "ren";
names["扣"] = "kou";
names["手"] = "shou";
alert(names["人"]);
alert(names.人);
for (var k in names) {
alert(k);
}
(3) 像Hashtable,Dictionary那样用,而且像他们一样的效率高。
Array()的简化声明
(1) Array还可以有简化的方式
var arr=[3,4,5,6,7]; //普通数组初始化
这种数组可以看做是names[“人”]=”ren”;的特例,也就是key为0,1,2,3,4,5
(2) 字典风格的简化创建方式
var arr={”tom”=30,”jim=”30};
数组,for和其它
(1) 对于数组风格的Array来说,可以使用join方法拼接为字符串。
复制代码 代码如下:
var arr = ["tom", "jim", "kencery"];
alert(arr.join(",")); //JS中join是array的方法,不像.net中是string的方法
(2) for循环可以像C#中的foreach一样的使用。
复制代码 代码如下:
for (var e in document) {
alert(e);
}