一、数组:
与Java有相似之处,但也不完全相同
创建方法1:
var cars=new Array();
cars[0] = "Saab";
cars[1] = "Volvo";
cars[2] = "BMW";
// 或者:
var cars=new Array("Saab","Volvo","BMW");
创建方法2:
var arr = [1270,2333,0,1,114514];
数组的遍历
通过以下代码理解:
<script>
var a = [100,7,65,54,12,6];
var mx = a[0];
var mn = a[0];
var n = a.length;
for(var i = 1;i < n;i ++)
{
if(a[i] > mx) mx = a[i];
if(a[i] < mn) mn = a[i];
}
// 或者写为
// for(i in a)
// {
// if(a[i] > mx) mx = a[i];
// if(a[i] < mn) mn = a[i];
// }
document.write("最大值:" + mx + "<br>");
document.write("最小值:" + mn);
</script>
二维数组的创建与遍历
var ac = [[1,2,3],[5,6,7]];
遍历二维数组
for(i in ac)
for(j in ac[i])
document.write(ac[i][j] + ' ');
实例:二维数组的转置(列变成行,行变成列)
var a = [[1,2,3],[4,5,6],[7,8,9],[0,0,0]];
var b = [[],[],[]];
for(var i = 0;i < a[0].length;i ++)
{
for(var j = 0;j < a.length;j ++)
{
b[i][j] = a[j][i];
}
}
for(i in a)
{
for(j in a[i]) document.write(a[i][j] + ' ');
document.write("<br>");
}
document.write("<br>");
for(i in b)
{
for(j in b[i]) document.write(b[i][j] + ' ');
document.write("<br>");
}
二、(自定义)函数
函数的定义不分先后,定义在调用之下(先用再定义)也可。
最简单的:
function fun()
{
var x = 5;
return x + 22;
}
返回两数中的最大值:
function maxNum(a,b)
{
a = parseInt(a);
b = parseInt(b);
return a>b ? a : b;
}
当输入不确定数量的内容时,可使用arguments读取。
function transferParam()
{
console.log(arguments.length);
console.log(arguments);
}
function sum()
{
len = arguments.length;
res = 0;
for(var i = 0;i < len;i ++)
{
res += arguments[i];
}
return res;
}
document.write(sum(6,6,6,6));
document.write(sum(1,2,3));
document.write(sum(6,6,6,6,6,6,6,6,6,6,6,6));
函数嵌套
在JavaScript中,一个函数可在函数内部声明。
回调函数
一个函数A作为参数传递给另一个函数B,在B内调用A。我们称A是回调函数。
箭头函数
写法简单,适用于较简单的函数的书写,如:
var fun = (x,y,z) => {return x + y + z};
document.writeln(fun(12,13,25));
var fun1 = (x,y,z) => x+y+z;
document.writeln(fun1(12,13,25));
var fun2 = x => x+2;
document.writeln(fun2(4));
匿名函数
有时,为了避免函数名冲突等问题,会使用匿名函数
<script>
// 函数表达式中省略函数名
var sum = function(num1,num2)
{
return num1 + num2;
}
// 自调用方式
var a = (function(num1,num2)
{
return num1 + num2;
})(12,13);
document.write(a);
// 处理事件
// 使用这行代码,html的body中的所有点击都会导致弹出一个警示框
document.body.onclick = function(){alert('哇!谁让你点的?/气呼呼');};
</script>
<br><input type="button" value="nihao">