函数起步相关[JavaScript]

函数定义的两种形式

函数声明


  function test(){
      document.write('a');
  }

此时test为函数名 使用test.name可以查看函数名为test

函数表达式


  var  fc = function test(){
      document.write('a');
  }

此时fc为函数体 使用fc.name可以查看函数名为test,方法调用是fc()
此时test()无法调用函数

  var  fc = function (){
      document.write('a');
  }

此时fc为函数体 使用的匿名函数可以查看函数名为fc,方法调用是fc()

形参与实参


形参:用于占位的参数 求形参长度:函数名.length
实参:实际使用的参数 求实参长度:Arguments.length

*Arguments (数组) 实参列表


若传入的实参数多于形参,但是不会丢弃多传入的参数,可以存储所有的实参内容
注意:若Arguments 对应的形参变化,则Arguments 也发生变化,虽然不是引用值,但是之间存在映射关系

映射详解例子:

  var  fc = function (a,b){
      a = 5;
      document.write(arguments[0]);//此时输出的结果为5,不为1
  }
fc(1,2)

映射详解深入:

  var  fc = function (a,b){
      b = 5;
      document.write(arguments[1]);//此时输出的结果为undefined
      
  }
fc(1)

原因剖析:调用时Arguments只有一个值,Arguments只是在函数调用时出现映射,所以第二形参未参与隐射

typeof扩展

  1. typeof返回的所有结果都是string类型
  2. typeof(context) 与typeof context用法一致

你可能感兴趣的:(函数起步相关[JavaScript])