• js函数的使用


                           js函数应用
     
    【函数的声明及调用】:
    1.函数声明:
       function 函数名(参数1,参数2,·····){
       //函数体
       return 结果;
      >>函数调用的格式:
       函数名(参数1的值,参数2的值,·····)
         事件调用
       }
    2.函数声明的几点强调:
    ①.函数名的声明,必须符合驼峰法则(首字母小写,之后的每个单词首字母大写);
    ②.参数列表,可以有参可以无参,分别为有参函数,无参函数;
    ③.声明函数时的参数列表叫形参列表(变量的名);调用函数是的参数列表叫实参列表(变量的值);
    函数中实际有效的参数取决于实参的赋值,未被赋值的形参,将为undefined;
    ④函数如果需要返回值,可用return返回结果;
        调用函数时,使用var 变量名=函数名();的方式,接受返回结果;
        如果函数没有返回值,则接受的结果为undefined;
    ⑤函数的作用域:
        在函数中,使用var生命的变量,默认为函数的局部变量,只在函数中起作用;
        不用var声明的,则为全局变量;
        函数中的全局变量,必须在函数调用后才能使用;
        函数的形参列表,为函数的局部变量,只在函数内部使用;
    ⑥函数声明与函数调用没有先后关系,调用语句可以写在声明之前。
      【匿名函数的声明及调用】
        1.声明一个匿名函数,直接赋给某个事件;
       window.onload=function(){}
        2.使用函数表达式,声明匿名函数;
           声明函数表达式:var func3=function(){}
           调用函数表达式:func3();
           >>使用匿名函数表达式,则调用语句,必须在声明语句之后,否则报错(对比常规函数声明与调用区别)
       3.使用自执行函数声明(重要):
                  !function(参数1){}(参数1的值);//使用任意运算符开头,一般使用!
                  (function(){}());//使用()将匿名函数级之后的括号包裹;
                  (function(){})();//使用()只包裹匿名函数表达式;
        三种写法的特点:
               1.开头加!,结尾加();不容易乱,推荐使用;
               2.可以表明匿名函数与之后的()为一个整体,推荐使用;
               3.无法表明函数与之后的()为一个整体,不推荐使用;
    【Arguments对象】
      1.作用:用于保存调用函数时,所赋值的实参列表。
      >>当我们调用函数,并使用实参赋值时,实际上参数已经保存到arguments数组中,即使没有形参也可以使用arguments[n]的形式调用参数。
      2.arguments数组的个数取决于实参,与形参无关,当第n个位置的形参,实参,arguments都存在时,形参与arguements是同步的(即在函数中修改其中一个值,另一个会同步变化)。
      3.arguments.callee是argument的重要属性,用于返回arguements所在函数的引用;
      arguement.callee()可以调用自身函数执行;
     在函数内部调用函数自身的写法,被称为递归,所以arguments.callee()是递归调用时常用的方式。
     【js中代码执行顺序】
          js中代码运行,会先进行检查,装载,及声明变量,函数等操作;
          然后再进行执行阶段(变量的赋值属于执行阶段);
          函数的声明属于检查装载阶段,函数的调用属于执行阶段,函数声明与函数调用没有先后关系,    调用语句可以写在声明之前。
    举例说明:
      console.log(num);
       var num=10;
       funN();
       function funcN(){}
      所以,上述代码,执行流程:
      -----检查装载阶段-----
      var num;       //变量声明
      function funcN()   //声明函数
      -----执行阶段-----
      console.log(num);
        num=10;
      funN();      //执行函数中{}部分
     
  • 相关阅读:
    Android 开发技术周报 Issue#288
    Android 开发技术周报 Issue#287
    Flutter Weekly Issue 62
    Android 开发技术周报 Issue#286
    Flutter Weekly Issue 61
    Flutter Weekly Issue 60
    最新解决navigator.webdriver=true的方法
    极验反爬虫防护分析之slide验证方式下图片的处理及滑动轨迹的生成思路
    极验反爬虫防护分析之接口交互的解密方法
    极验反爬虫防护分析之接口交互的解密方法补遗
  • 原文地址:https://www.cnblogs.com/waj6511988/p/6682212.html
Copyright © 2020-2023  润新知