快来加入我们吧!
"小和山的菜鸟们",为前端开发者提供技术相关资讯以及系列基础文章。为更好的用户体验,请您移至我们官网小和山的菜鸟们 ( https://xhs-rookies.com/ ) 进行学习,及时获取最新文章。
"Code tailor" ,如果您对我们文章感兴趣、或是想提一些建议,微信关注 “小和山的菜鸟们” 公众号,与我们取的联系,您也可以在微信上观看我们的文章。每一个建议或是赞同都是对我们极大的鼓励!
函数
前言
在开始学习之前,我们想要告诉您的是,本文章是对JavaScript
语言知识中 “函数” 部分的总结,如果您已掌握下面知识事项,则可跳过此环节直接进入题目练习
- 函数简介
- 函数名称
- 函数重载
- 函数声明与函数表达式
- 函数作为值
- this
- 函数的递归
如果您对某些部分有些遗忘,👇🏻 已经为您准备好了!
汇总总结
函数简介
函数是所有编程语言的核心部分,因为它们可以封装语句,且被定义后可以在任何地方、任何时间执行。ECMAScript
中的函数使用 function
关键字进行声明,后跟一组参数,然后是函数体。
以下是函数的基本语法:
function functionName(arg0, arg1,...,argN) {
//表达式
}
下面是一个例子:
function sayHi(name, message) {
console.log('Hello ' + name + ', ' + message)
}
可以通过函数名来调用函数,要传给函数的参数放在括号里(如果有多个参数,则用逗号隔开)。
下面是调用函数 sayHi()
的示例:
sayHi('xhs', 'do you study today?')
调用这个函数的输出结果是 "Hello xhs, do you study today?"
。 参数 name
和 message
在函数内部作为字符串被拼接在了一起,最终通过 console.log()
输出到控制台。
ECMAScript
中的函数不需要指定是否返回值,也不限制返回值的类型。任何函数在任何时间都可以使用 return
语句来返回函数的值,用法是后跟要返回的值,返回值可以是任何类型。比如:
function sum(num1, num2) {
return num1 + num2
}
函数 sum()
会将两个值相加并返回结果。注意,除了 return
语句之外没有任何特殊声明表明该函数有返回值。然后就可以这样调用它:
const result = sum(5, 10)
值得注意的是,只要执行到 return
语句,函数就会立即停止执行并退出。因此,return
语句后面的代码不会被执行。比如:
function sum(num1, num2) {
return num1 + num2
console.log('Hello world') //不会执行
}
在这个例子中,console.log()
不会执行,因为它在 return
语句后面,解释器在执行到 return
语句后就停止对该函数的执行。
一个函数里可以有多个 return
语句,像这样:
function subtract(num1, num2) {
if (num1 < num2) {
return num2 - num1
} else {
return num1 - num2
}
}
这个 subtract()
函数用于计算两个数值的差。如果第一个数值小于第二个,则用第二个减第一个;否则,就用第一个减第二个。代码中每个分支都有自己的 return
语句,返回正确的差值。return
语句也可以不带返回值。这时候,函数会立即停止执行并返回 undefined
。这种用法最常用于提前终止函数执行,并不是为了返回值。比如在下面的例子中,console.log()
不会执行:
function sayHi(name, message) {
return
console.log('Hello ' + name + ', ' + message) // 不会执行
}
根据开发经验而言,一个函数要么返回值,要么不返回值。只在某个条件下返回值的函数会带来麻烦,尤其是调试时。
函数名称
函数名是一个指向函数的指针,所以它们跟其他包含对象指针的变量具有相同的行为。这意味着一个函数可以有多个函数名,如下所示:
function sum(num1, num2) {
return num1 + num2
}
console.log(sum(10, 10))