函数、BOM
自定义函数:
1、使用函数前要先定义才能调用
2、函数定义有三个部分:函数名、参数列表、函数体
3、定义函数的格式
function 函数名([参数1,参数2]){
函数执行部分;
return 表达式;
}
调用函数
1、直接调用
2、函数调用一般通过表单元素的事件一起使用
3、事件名="函数()"
function showhello(){
for(var i=0;i<5;i++){
document.write('<h2>hello world</h2>');
}
}
//window.onload=showhello();//第二种
//showhello();//第一种
//<input type="button" name="" id="" value="点击" onclick="showhello()" />//第三种
匿名函数:
常见匿名写法
事件名=function(){}
window.onload=function();
window.onload=function(){
alert('abc');
};
调用带返回值的函数
函数内部属性
Arguments:数组对象,主要用于保存函数参数(个数由实参决定的)
function printc(){
for(var i=0;i<arguments.length;i++){
alert(arguments[i]);
}
}
printc('a','b','c');
属性callee:指向拥有arguments对象的函数
function test(){
alert(arguments.callee);
}
function test2(){
test();
}
test2();
this:函数调用语句所在作用域,函数的调用者。
function test(){
alert(this);
}
test();
递归:
//递归算法计算1+2+..+10
var sum1=0;
function sum(i){
sum1=i;
if(i==1){
return 1;
}else{
return sum1+=sum(i-1);
}
}
document.write(sum(10)) ;
//递归计算10!
function plus(i){
if(i==1)
return 1;
return i*plus(i-1);
}
document.write(plus(10)) ;
//和尚挑水问题
var s=0;
function sum(i){
s=5*i;
if(s>=50-15){
return i ;
}else{
return sum(++i);
}
}
document.write(sum(1));