JavaScript自定义函数进阶(匿名函数变量的作用域)
Posted 小魁的C世界
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript自定义函数进阶(匿名函数变量的作用域)相关的知识,希望对你有一定的参考价值。
一、匿名函数
匿名函数顾名思义就是一个没有名字的函数,这一类函数也被称为拉姆达函数,是一种使用javascript函数的强大方式,匿名函数有两种语法形式:
语法一:
(function (形式参数列表){
语句
})(实际参数列表);
例:(使用语法一:求语数英三科成绩的平均分)
<script type="text/javascript">
(function(chinese, math, english) {
result = (chinese + math + english) / 3;
document.write("语文成绩是:" + chinese + ",数学成绩是:" + math + ",英语成绩是" + english + ",三科的平均分为" + result);
})(135, 140, 145);
</script>
实现样式:
语法二:
var 变量 =(function (形式参数列表){
语句
} );
变量(实际参数列表);
例:(使用语法二:求语数英三科成绩的平均分)
<script type="text/javascript">
var average = (function(chinese, math, english) {
result = (chinese + math + english) / 3;
document.write("语文成绩是:" + chinese + "分,数学成绩是:" + math + "分,英语成绩是" + english + "分,三科的平均分为" + result);
});
average(135, 140, 138);
</script>
实现样式:
二、变量的作用域
1、变量的作用域主要分为两种:全局变量和局部变量
··全局变量是在函数体外进行变量的声明,因此全局变量可以在任何地方,以至于在函数内部使用。
··局部变量则是在函数体内进行变量的声明,并且只能在函数体内使用。因此局部变量会随着函数的结束而消失。
注意:如果全局变量和局部变量出现了重名的情况,局部变量优先,并且无论局部变量的值如何改变,全部变量的值都不会收到影响。
例:(分析下列代码中那些是全局变量,那些是局部变量)
<script type="text/javascript">
var money = 100; //全局变量
function getMoney() {
var money = 150; //局部变量
document.write("我口袋里还有:" + money + "元"); //输出局部变量的值
}
getMoney();//调用getMoney函数
</script>
实现样式:
以上是关于JavaScript自定义函数进阶(匿名函数变量的作用域)的主要内容,如果未能解决你的问题,请参考以下文章
JS函数 -- 功能,语法,返回值,匿名函数,自调用匿名函数,全局变量与局部变量,arguments的使用