经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » JS/JS库/框架 » JavaScript » 查看文章
JavaScript(六)-函数
来源:cnblogs  作者:小衣  时间:2021/1/11 9:35:05  对本文有异议

函数:定义函数

定义方式

第一种定义方式:可在后面定义前面调用.可提前调用

  1. function gg(){
  2. console.log("函数内部的代码");
  3. }

第二种定义方式:必须先定义后面执行,提前调用报错

  1. // b();//报错 -- let定义的函数不可以提前调用
  2. let b = function(){
  3. console.log("这是函数b");
  4. };
  5. //只能在定义之后调用
  6. b();

函数的作用域

一个变量起作用的区域:全局变量(全局作用域),局部变量(局部作用域)
作用域链:要使用某个变量的时候,先从自身作用域开始查找,自己有就用自己的,自己没有再从父级作用域开始查找,依次类推,直到全局为止。
1.不允许从父级作用域访问子级作用域,允许从子级作用域访问父级作用域,
2.作用域不同,变量名是可以重复到的.
3.同级之间无法访问
  1. //全局变量
       let a = 10;
  2. function x(){
  3.     
     //局部变量
  4. let a = 20;
  5. function y(){
  6. console.log(a);
  7. }
  8. y();
  9. }
  10. x();
  11. console.log(a);

函数表达式

通常我们需要定义函数之后,再才能用 函数名() 的形式自执行,函数表达式可以直接在后面加小括号自执行执行。

开发单独功能模块,方便代码后期整理,优化

  1. (function(){
  2. console.log("函数内部代码");
  3. })();
  4. //其他的函数表达式写法
  5. (function(){
  6. console.log("函数表达式自执行2");
  7. }());
  8. +function(){
  9. console.log("函数表达式自执行3");
  10. }();
  11. -function(){
  12. console.log("函数表达式自执行4");
  13. }();
  14. ~function(){
  15. console.log("函数表达式自执行5");
  16. }();
  17. !function(){
  18. console.log("函数表达式自执行6");
  19. }();
  20. //轮播图
  21. (function(){
  22. })();
  23. //选项卡
  24. (function(){
  25. })();
  26. //侧边栏
  27. (function(){
  28. })();

有名函数与匿名函数

  1. //有名函数
  2. function gg(){
  3. console.log("函数内部的代码");
  4. }*/
  5.  
  6. //函数自执行
  7. gg();
  8.  
  9. //充当事件函数 被执行(注不需要加(),只需要加函数名)
  10. document.onclick = gg;
  11.   

       //匿名函数
  12. //充当事件函数的时候,可以用函数名字,也可以直接写一个匿名函数
  13. document.onclick = function (){
  14. console.log("这是一个匿名函数");
  15. };
      
     //匿名函数不能单独出现
     // function(){} //报错
  1.  

参数

实参   形参   不定参

实参:函数自执行时,小括号里面传入的数据;形参:函数定义时,小括号里面写的变量名;不定参:Arguments函数内部的伪数组,用于存储着所有的实参集合;

函数定义时()写的是形参,函数执行()写的是实参

函数内部有一个变量 Arguments,Arguments不定参记录所有实参传给形参的集合
注:当实参传入形参不是一个数据时,自动转换(寻找变量值运算),当实参传入一个函数时,形参自执行即可.
  1. //功能函数:求和
  2. function sum( a,b ){ //形参
  3. console.log(a,b,a + b);
  4. }
  5. sum( 3 , 4 );//实参
  6. sum( 3 , 5 );//实参
  7. sum( 3 , 10 );//实参
  8.  
  9. //实参多 -- 没有对应的形参来接收多的,但是正常运行不会出错
  10. sum( 5 , 6 , 7 );
  11. //实参少 -- 没有对应数据的形参就是默认值undefined
  12. sum( 2 );
      
      

原文链接:http://www.cnblogs.com/yhy-blog/p/14242720.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号