学习javaScript中的函数

谁说胖子不能爱 提交于 2020-03-22 18:18:40

    今天分享一下自己对函数的认识

  第一次看见函数的人都不会觉得函数很难,,因为他看起来很简单......对,很简单(个屁)

<script>
    function fn(){
        console.log('hello world')
    }fn();    
</script>

  上面就是一个简单的函数了,运行后打开控制台就能看见‘hello world’ 了,别人都说,在JavaScript中,函数有‘一等公民’的身份,小白的我开始没觉着,后面才发现,越到后面,函数用起来实在是太多了,或许这就是为啥他是‘一等公民’了;

   首先我们的了解函数是个啥:

  在JavaScript中,函数即对象,可以随意地被程序操控,函数可以嵌套在其他函数中定义,这样可以访问它们被定义时所处的作用域中的任何变量。函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块(摘自官方文档~)。
 
  简而言之,函数就是一个大盒子,里面放着我们要执行的js代码,想要在哪用直接调用就行;
  
  一、.函数的创建(两种方式)
  1.声名式函数的创建:使用关键字function
  
 

   2. 赋值式函数的创建:使用var 关键字创建

  var fnA = function(){
      console.log('你好,世界')

      } 

  赋值式函数创建就相当于把一个函数赋值给变量fnA;

二、学会创建我们就要知道怎么用了---函数的调用

  调用直接在需要使用的地方写上函数名即可,后面跟一个小括号,表示你调用了这个函数,至于小括号,写上你要传进去的参数;参数下面再叙

  调用有需要注意的一点:就是赋值式函数和声名式函数的不同之处,赋值式函数要在函数定义后才能调用,而声明式函数则可以想在哪用就在那用,这里的区别之处是因为js的预解析,js代码在运行时经历两个步骤,先通读代码,把声明的变量和声明的函数先解析了,赋值操作等到执行时再付给变量;所以声名式函数才能随时调用,而赋值式函数不行;我感觉这就是函数是一等公民的原因了;

三、函数的参数

  函数的参数分为实参和形参,形参就是小括号内的参数,用来接收实参的;而实参就是调用时传给函数的形参;形参也是函数内的变量;

四,作用域

  作用域就是一个变量的使用范围,全局作用域就是整个页面,而局部作用域只有函数能生成,而局部作用域里的使用Var声明的变量只能在函数内部使用,函数里面的子函数也能用,子函数的子函数也能用,但是子函数的子函数里的变量,子函数不能用;这就是作用域

五。函数的嵌套与递归

  函数可以互相嵌套,就是允许函数里面可以再写函数,函数也可以互相调用,特殊的自己调用自己叫做递归;

<script>
    //使用递归求一个数的阶乘
    //n 的阶乘是这样的: n! = (n-1)*(n-2)...*2*1;使用递归表示方法为:n! = n * (n-1)!  ;
    function fn(a){
        //找临界值
        if(a == 0 || a == 1){
            return 1;
        }
        return a = a * fn(a - 1)
        
    }
    console.log(fn(5));
</script>

上面就是一个简单的利用递归求一个数的阶乘的递归函数;

 六,函数的返回值  return

  如果你想函数返回一个值,那么你就需要写这个关键字return了;当然不写也可以,只是这个函数不会返回任何东西,只是单纯的执行了里面的代码;

<script>
//不写return和写return的区别
    function fn1(a, b){
        var c = a + b;
        return c;
    }
    function fn2(a, b){
        var c = a + b;
    }
    console.log(fn1(3, 5));  // 返回值为 8 
    console.log(fn2(3, 5));  // 打印的是这个undefined;并没有值出来
</script>

 

      哦了。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!