美文网首页前端开发那些事儿
JS函数和函数参数规则

JS函数和函数参数规则

作者: 深度剖析JavaScript | 来源:发表于2020-08-04 19:16 被阅读0次

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);

相关文章

  • JS函数和函数参数规则

    js函数是由关键字function、函数名加一组参数以及置于大括号中需要执行的一段代码定义的。函数定义后并不会自动...

  • C++ 函数重载 默认参数 内联函数

    函数重载 (overload) 规则 函数名相同 参数个数不同、参数类型不同、参数顺序不同 注意 返回值类型和函数...

  • 14.程序编程进阶:函数的参数

    接上一讲,这节我们专门介绍python函数的参数处理 本节主要内容 函数的形式参数和实际参数 函数的参数定义规则 ...

  • 函数重载 (Overload)

    规则 函数名相同 参数个数不同、参数类型不同、参数顺序不同 注意 返回值类型和函数重载无关 调用函数时,实参的隐式...

  • 2018-04-28 学习is-sorted模块笔记

    js数组中的sort方法的排序规则: sort中可以传入一个函数,比较函数接受a,b两个参数; 当函数返回值小于0...

  • 2.Dart面向对象

    函数 命名可选参数{} 位置可选参数[] 作用域定义:与js的作用域一致,层层向上找。 Dart函数闭包 js函数...

  • 内置函数

    一:filter函数:过滤器 1-1:函数使用 参数1:过滤规则函数参数2:可迭代对象 二:map函数:将函数应用...

  • js获取url参数

    js获取url参数函数:

  • js 隐含参数理解

    js 隐含参数 1.arguments arguments 该对象代表正在执行的函数和调用它的函数的参数。 使用方...

  • JavaScript常用知识(持续更新中...)

    14、JavaScript函数 js函数中有个储存参数的数组arguments ,所有函数获得的参数会被编译器挨个...

网友评论

    本文标题:JS函数和函数参数规则

    本文链接:https://www.haomeiwen.com/subject/wkdprktx.html