2018.9.14 关于对JS函数的理解的总结

  今天是2018.9.14星期五,下午16:00整,今天是我们公司是双休的,也就是说周末放假两天!今天下午我的内心的是很浮躁的,看着屏幕里面的代码,心却早已飞向远方。我知道这样很不好,但是就是有那么一段时间很烦躁的。真的希望我能改掉这个坏毛病。时间过得真快,转眼间来到公司当实习生已经半个月了,要说半个月在公司学到了什么,我好想说不出来,只知道公司是专门做琴房管理系统的,就是软硬件结合的公司。这半个月都是自己在跟着视频进行学习,上面也没有给我布置任务,我就自己一个人默默地跟着视频学习。管他呢,到时候老板肯定也会布置任务的。先好好的学习吧,只有自己有技术才是王道,慢慢来慢慢来,不着急不着急。既然很烦躁的话,那就总结一下,今天所学到的js把!

-----------------------分割线-------------------------

首先在使用函数的时候要了解函数的三要素:

  1.首先先用注释说明函数的需求

  2.然后在函数中写明要传的参数

  3.最后写清楚返回值

js函数可分为:

  //无参数无返回值

  //有参数有返回值

  //有参数无返回值、

  //无参数有返回值

关于返回值问题:

  //如果return 后面跟内容了,就返回return后面的内容

  //如果return后面没有跟内容就返回undefined

  //如果函数后面没有写return就返回undefined

关于参数问题

  //函数在进行调用的时候,会把实参的数 复制一份传递给getSum函数

  //在js函数里面是可以形参和实参个数不一样的。

在其他语言中有重载的概念但是在js里面是没有重载的概念的:

  //重载:函数名字相同,但是参数个数相同

  //在js中没有重载的概念。

  //相同名称的函数会把上面你的函数进行覆盖,所以在js中不能出现同名的函数。

函数定义的两种形式:

  1.函数的声明:function fun(){};

  2.函数的表达式:var myfun=function(){};

  上面两种方式的区别

      函数声明:整个函数的提升

      函数表达式:只是变量在提升

过程是这样子的:

   解析器: 

               //全局作用域

                 //预解析------>找到了 var a; function f1(){};

                //然后再进行一行一行的执行代码

                     //a = 18;

                    //f1();

                         ---f1的局部作用域

                             ---预解析--->var b; var a;

                             ----然后在从上到下一行一行的执行代码

解析过后最终的代码变成了这样:

最后输出为:is not defined 还有 9

这里要注意的是:在函数内部进行获取变量的时候,会先在当前的作用域上进行寻找,有没有变量声明,如果有就返回当前变量声明,如果没有的话就上一级进行寻找变量的值

作用域问题:

  //全局作用域:

     //1.在<script>标签中定义的变量---全局变量

     //2.不使用var声明的变量也是----全局变量。

     //3.当关闭网页或者浏览器时网页才会进行释放

  局部作用域

     //1.只有在函数中内部使用var定义的变量才是局部变量

     //2.超出函数的使用范围后,局部变量会被销毁

   js中没有块级作用域

     //if或者var定义的变量全部是全局变量

  

猜你喜欢

转载自blog.csdn.net/HANGSOME123/article/details/82704539