1. 定义函数的三种方式
1. 定义命名函数
function functionName(parameter-list) { statements }
注意: 给予函数提升的特性, 在同一个script标签内允许我们先调用函数, 再定义函数, 但是在不同的script标签内, 必须先定义, 再调用
2. 定义匿名函数
<script>
var f = function(name)
{
document.writeln(‘匿名函数<br>‘);
document.writeln(‘你好‘ + name);
};
f(‘zhangjian‘)
</script>
定义匿名函数无需指定函数名, 而是将参数列表紧跟function关键字, 在函数定义语法的最后不要忘记紧跟分号
3. 使用Function类定义匿名函数
<script>
var f = new Function(‘name‘ ,
"document.writeln(‘Function定义的函数<br>‘);" +
"document.writeln(‘你好‘ + name)"
);
f(‘zhangjian‘)
</script>
js提供了一个Function类,该类也可以用来定义函数,FFunction类的构造器的参数个数可以不受限制, Function可以接受一系列的字符串参数,其中最后一个字符串参数是函数的执行体,z执行体的语句用分好隔开,而前面的各字符串则是函数的参数
2. 递归函数
递归函数是啥这里就不多说了哈, 不了解的可以取力扣看一下
用递归实现求n的阶乘
<script>
var f = function(n)
{
if(typeof(n) == ‘number‘)
{
if(n==1)
{
return 1
}
else
{
return n * f(n-1)
}
}
}
document.write(f(4))
</script>
3. 局部变量和局部函数
在函数内用var定义的变量成为局部变量
在函数外不或者函数内不适用var定义的变量成为全局变量
如果局部变量和全局变量的变量名相同, 则局部变量会覆盖全局变量
局部函数与局部变量概念相似, 局部函数在函数里边定义
<script>
function outer()
{
function inner1()
{
document.write(‘局部函数1‘)
}
function inner2()
{
document.write(‘拒不函数2‘)
}
inner1();
inner2();
}
outer()
</script>
原文:https://www.cnblogs.com/zhangjian0092/p/11747279.html