标签:zhang 递归 概念 数列 doc 函数的参数 限制 code name
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>
标签:zhang 递归 概念 数列 doc 函数的参数 限制 code name
原文地址:https://www.cnblogs.com/zhangjian0092/p/11747279.html