javaScript定义函数的三种方式&变量的作用域

一.函数定义

方式1.普通方式定义函数

function 函数名(参数n){

函数体

}

function add(a,b){
		return a+b;
	}
方式2.直接量定义函数

var 函数名=function(参数n){

函数体

}

var add=function(a,b){
		return a+b;
	}
方式三.构造方式定义函数

var 函数名=new Function(参数n,函数体);

var add = new Function('a,b','return a+b;');
二.变量的作用域:

全局变量:全局域和函数域

局部变量:局部函数域内

<script type="text/javascript">
	var a="a";
	function fn(){
		var b="b";
		alert(a);
		alert(b);
	}
	fn();
	alert(a);
	alelrt(b);
</script>
打印结果:a,b,a我们发现最后一个alert(b)没有打印这是因为b定义在函数体内只能在函数体内使用
特殊的作用域

<script type="text/javascript">
	var a="a";
	function fn(){
		alert(a);
		var a="b";
		alert(a);
	}
	alert(a);
</script>
运行结果:

undefined,b,a

代码解释:


* 解读一下代码:
*  * 定义一个全局变量a,并初始化为"a".
*  * 定义一个函数fn(),但是没有调用(说明函数内容的代码不执行).
*    * 定义局部变量a,但不初始化.
*  * 到以上代码为止,当前环境中具有几个变量?
*    * 全局变量a,值为"a".
*    * 局部变量a,但没值.
*  * 当调用函数fn()时:
*    * 打印变量a:就近原则
*      * 局部变量a,没值:结果为undefined.
*    * 打印变量a,局部变量a.
*  * 在全局域中打印变量a:全局变量a.

* 结论:
*  * javascript一次性定义代码段中所有的变量,但不初始化.
*  * javascript中当执行到对应语句时,初始化变量.
*  
*  * 当全局变量与局部变量同名时:
*    * 在函数域中,只能访问到局部变量a.


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值