了解JS函数和函数参数规则

348 阅读2分钟

「这是我参与11月更文挑战的第17天,活动详情查看:2021最后一次更文挑战

js函数是由关键字function、函数名加一组参数以及置于大括号中需要执行的一段代码定义的。函数定义后并不会自动执行,要执行一个函数需要在特定的位置调用该函数,调用函数需要创建调用语句,调用语句包含函数名和参数的具体值以及执行符号()。

  1. 定义函数 函数定义分别有两种方式,分别是:函数声明和函数表达式
  • 函数声明 由关键字function、函数名加参数+大括号中需要执行的代码组成
function fName(parameter){
  //函数体,函数需要实现的功能代码
  //函数可有返回值,使用return关键字
}

function:关键字,必须 fName:函数名,名可自定义 parameter:参数,名可自定义 (){}:必须 函数体内每条语句使用;结束 return:返回值根据实际情况,若没写,默认是undefined

  • 函数表达式

函数表达式分为命名函数表达式和匿名函数表达式,如下:

//命名函数表达式
var fn = function fnName(){
  console.log("I am fn,my name is fnName!");
}
//匿名函数表达式
var fn2 = function){
  console.log("I am fn2, but I don't have name!");
}

不管是命名函数表达式还是匿名函数表达式,只要是这种函数表达式的方式声明的,函数名都会忽略,之后变量名指代该函数所以一般都会使用匿名函数表达式。

  1. 函数参数

函数的参数分形参和实参,形参是指函数定义的时候声明的形式参数,实参是函数执行时传入的实际参数。 函数参数特点:

  • 参数个数没限制 当实参>形参时,多余实参被忽略; 当实参<形参时,多余形参的值为undefined
  • 参数的数据类型没限制 这是其实是js本身是弱数据类型语言导致的
  • 参数始终按值传递的 基础类型传值 引用类型传址
  • 在函数体中,通过特殊对象arguments来访问参数列表 比如实现任意个数相加:
function sum(){
  var result = 0;
  for(var i = 0; i < argumens.length; i++){
    result += arguments[i];
  }
  return result;
}
sum(1,2,3,4,5);