在学习完了上一节的内容之后,我们接下来讲的是循环语句以及后面函数的一些问题。
下面我们以一个很常见很简单的栗子结束这一小部分: 打印九九乘法表:
<script type="text/javascript">
for(var i=1;i<=9;i++){
for(var j=1;j<=i;j++){
document.write(j+"*"+i+"="+(j*i)+"  ");
}
document.write("<br/>");
}
</script>
for(var 变量名 in 遍历的目标){
}
1. 可以用于遍历数组的元素。 注意: 使用for-in语句遍历数组元素的时候遍历出来是数组的下标。
<script type="text/javascript">
var arr = [12,13,16,18,22];
for(var item in arr){
document.write(item+",");//输出的结果是0,1,2,3,4,
}
</script>
//正确的使用方法如下:
<script type="text/javascript">
var arr = [12,13,16,18,22];
for(var item in arr){
document.write(arr[item]+",");//输出的结果是12,13,16,18,22,
}
</script>
//普通的遍历方式(使用for循环)
<script type="text/javascript">
var arr = [11,12,3,43,5];
for(int i=0;i<arr.length;i++){
document.write(arr[i]+",");
}
</script>
2. 可以用于遍历对象的所有属性数据。 注意: 使用for-in语句遍历对象的属性的时候,遍历出来的是对象的属性名。
<script type="text/javascript">
function Person(id,name){
this.id = id;
this.name = name;
}
var p = new Person(123,"大熊");
for(var person in p){
document.write(p[person]+",");
}
</script>
上面使用的function用法不止这一个,其他用法我们后面会介绍。
作用:使用了with语句后,在存取对象属性和调用方法时就不用重复指定对象 格式:
with(对象){
}
具体用法如下:
<script type="text/javascript">
with(document){
write("Hello world"+"<br/>");
write("Hello world"+"<br/>");
write("Hello world"+"<br/>");
}
</script>
//自定义的对象同样可以使用
<script type="text/javascript">
function Person(id,name){
this.id = id;
this.name = name;
}
var p = new Person(123,"大熊");
with(p){
document.write("ID号:"+id);//输出id123
document.write(" 姓名:"+name);//输出姓名:大熊
}
</script>
function 函数名(形参列表){
函数体 ;
}
看下面这个函数:
<script type="text/javascript">
function add(var a , var b){
var sum = a + b;
document.write("结果:" + sum);
}
//调用
add(2,1);
</script>
事实上,这样子调用是会出现问题的,IDE一般不会提示错误,而浏览器则会提示你var错误。也就是说,在定义形参的时候,不需要使用var关键字,直接写参数名称即可
<script type="text/javascript">
function add(a , b){
var sum = a + b;
document.write("结果:" + sum);
}
//调用
add(2,1);//输出结果为3
</script>
还有一些重要的注意事项,我们做出如下总结:
<script type="text/javascript">
function add(){
document.write("数组长度:"+arguments.length);
}
add(1,2,3);//输出的结果是3,如果传入的是两个参数,则输出的结果是2,以此类推
</script>
就是说,如果函数是有形参的,传入的实参无论是几个,都会先存在arguments数组中,然后再由该数组依次分配给各个形参。 最后,我们来一个例子作为函数部分的参考: 问题:在网页中输入一个月份(1-12),网页根据月份弹出对应月份的天数
</head>
月份:<input id="month" type="text" /><input type="button" value="查询" onClick="showDay()" />
<body>
<script type="text/javascript">
function showDay(){
//0.找到对应的月份标签对象
var inputMonth = document.getElementById("month");
var month = inputMonth.value;
//alert(inputMonth.value);
//1.用获取到的值弹出对应的天数
if(month==1||month==3||month==5||month==7||month==8||month==10||month==12){
alert("本月是31天!");
}else if(month==4||month==6||month==9||month==11){
alert("本月是30天!");
}else if(month==2){
alert("闰年2月29天,非闰年28天");
}else{
alert("没有该月份(月份应为1-12)");
}
}
</script>
</body>