JavaScript函数 Day2

函数

  • 变量提升和函数提升
//function 提升(在var之前)
//var 变量提升
fn(); //会打出666,因为function提升到代码块最前面。
function fu(){
  alert(666);
};
// console.log(c); 控制台报错,因为c没有声明。
console.log(a); //控制台打印 undefined ,表示a空间已经声明未赋值。
var a = 10; //var 声明a这个变量空间会提升到代码块最前面。
  • 函数实现累加、阶乘(函数的自调用)
<script type="text/javascript">
      function fm(num){
        if(num>0){
          return num+fm(num-1);
        }
        else{
          return num;
        }
      }
      console.log(fm(4));
    </script>
<script type="text/javascript">
      function fm(num){
        if(num>1){
          return num*fm(num-1);
        }
        else{
          return num;
        }
      }
      console.log(fm(3));
    </script>

return

  • 返回值
  • 遇到return就结束函数,无论后面是否还有代码。

作业

  • 阶乘 加减
  • 多参和
  • 3d彩票
  • 2a^2+20 前十项和 fn(10)

形参和实参

function fn(num1,num2){
//var num1;
//var num2;
  console.log(num1);
  console.log(num2);
}
fn(10); //不报错,显示10 undefined
  • arguments[ ] 实参对象
function fn(num1,num2){
  console.log(arguments[0]);
  console.log(arguments[1]);
  console.log(arguments[2]);
}
fn(10,20,30); //可以输出三个值,不会报错,如果没有第三个参数,arguments[2]输出undefined
  • arguments.callee用法
(function(n){
   if(n > 1)      
    return n* arguments.callee(n-1); //函数中调用自己
   return n;
})(10); //匿名函数实现阶乘
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 函数声明和函数表达式有什么区别 (*)解析器会率先读取函数声明,并使其在执行任何代码之前可以访问;函数表达式则必须...
    coolheadedY阅读 2,962评论 0 1
  • 本文档内容参考 《JavaScript 闯关记》之函数 函数是一段代码,它只定义一次,但可以被执行或调用任意次。在...
    穿越人海遇见你阅读 4,589评论 0 1
  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 12,375评论 2 17
  • 单例模式 适用场景:可能会在场景中使用到对象,但只有一个实例,加载时并不主动创建,需要时才创建 最常见的单例模式,...
    Obeing阅读 6,350评论 1 10
  • JS基础讲解 JavaScript组成ECMAScript:解释器、翻译DOM:Document Object M...
    FConfidence阅读 3,624评论 0 1