函数
function 函数名(){
函数体(写具体的代码);
}
函数名();
就是要先声明后调用
function print(){
for(var i = 0; i < 10; i++){
document.write("<h1>hello world<h1>");
}
}
print();
声明提升
程序在执行之前,会有准备时间,叫预编译。
在预编译期间,会将声明的函数,和声明的变量,拿到所有程序的前面执行。
但只提升声明,赋值在哪还是哪。
alert(num);//undefind
var num = 10;
alert(num);//10
函数分类
1.系统内置的一些函数
Math.pow(x,y);//x的y次方
alert();
document.write();
。。。
2.事件驱动函数
onclick//点击
。。。
3.自定义函数
自己写
函数问题
无参数无返回值函数
function print(){
函数体
}
如果在函数里有不确定的值,就给他的值声明成形参(形式山的参数)。
function print(形参1,形参2…){
函数体
}
print(5);//这个是实参,实际参数,调用次数。
函数的返回值
函数调用以后有值,return后面的就是。
function show(){
return 10 + 20;
}
var res = show();
alert(res);//30
function add(x, y){
var num = x + y;
return num;
}
alert(add(10, 30));//40
练习题
解题思路主要找返回值和参数
图5
图6
作用域
这var a的声明位置不一样,结果也不一样。
var a = 2;
function show(){
a++;
alert(a);
}
show();//3
show();//4
function show(){
var a = 2;
a++;
alert(a);
}
show();//3
show();//3
var a = 2;
function show(a){
a++;
alert(a);
}
show(a);//3
show(a);//3
这个是个高阶练习
var num = 10;
function show(){
num = 20;
alert(num);
var num = 10;
alert(num);
}
alert(num);
show();
alert(num);
最后的输出结果是10.20.10.10
因为先跳过函数下面第一个alert输出了全局变量的10
然后调用函数,函数,里第一个被赋值20输出,因为函数里的var声明被拿到了函数里的最前面
然后第三个输出赋值成10
最后函数外的alert调用还是10