函数 声明提升 作用域

函数

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值