函数
函数的概念
在JS里面,可能会定义非常多的相同代码或者功能相似的代码,这些代码可能需要大量重复使用。 虽然 for循环语句也能实现一些简单的重复操作,但是比较具有局限性,此时我们就可以使用JS中的函数。
函数的使用
- 声明函数
js
#声明无参数函数
function function_name() {
函数体
}
#声明有参数函数
function function_name(行参x,行参y) {
函数体
}- 调用无参数函数
#调用无参数函数
function_name()
#调用有参数函数
function_name(实参x,实参y)- 函数声明的几种方法
js
1、Function声明
function test(){
console.log('这是一个function声明的函数')
}
test() //函数调用
----------------------------------------------------------
2、箭头函数
var test = ()=>console.log('这是一个箭头函数')
test() //函数调用
----------------------------------------------------------
3、构造函数
var sum =new Function("a","b","return a+b");
console.log(sum(5,6)) //函数调用
----------------------------------------------------------
4、函数表达式
var foo = function(){
console.log('这是一个函数表达式的打印')
}
foo() //函数调用
----------------------------------------------------------
5、匿名函数
(function(){
console.log('这是一个匿名函数的打印')
})
//函数调用/执行
(function(){
console.log('这是一个匿名函数的打印')
})()函数的返回值
js
function hhh() {
return 666
}
console.log(hhh())TIP
注意:
- 1、函数没有return返回undefined,
- 2、函数里面的return后面的代码不执行,
- 3、如果是这样的"return 666,777,888"的,则返回值为888,
arguments的使用
当我们不确定有多少个参数传递的时候,可以用arguments来获取。在JavaScript中,arguments实际它是当前函数的一个内置对象。
所有函数都内置了一个arguments对象,arguments对象中存储了传递的所有实参。
TIP
注意:arguments展示形式是一个伪数组,因此可以进行遍历。伪数组具有以下特点︰
- 具有length属性
- 按索引方式储存数据
- 不具有数组的push , pop等方法
js
#求多个数的max
function hhh() {
var max = arguments[0];
for (var i=1;i<arguments.length;i++){
if (arguments[i]>max){
max=arguments[i];
}
}
return max
}
console.log(hhh(1,2,3,5,6,7,8,9))函数调用另一个函数
js
//函数是可以互相调用
function test1(){
test2()
}
function test2(){
console.log("这个函数被调用了")
}
test1()提醒
JavaScript 中的函数不支持重载。函数重载是指在同一个作用域内定义多个同名函数,但每个函数有不同的参数列表,这样在调用函数时,根据传入的参数个数和类型的不同,会自动选择调用对应的函数。 在其他一些编程语言中,如 Java、C++ 等,函数重载是一种常见的技术。但是在 JavaScript 中,同名函数会发生覆盖,最后定义的函数会覆盖之前定义的函数,不论它们的参数个数和类型是否相同。 可以使用默认参数值、剩余参数和函数重载模拟函数重载的行为,但实际上这些方法只是基于函数参数的语法糖,无法真正实现函数重载的效果。
函数案例
js
# 用函数实现任意的数组的反转
var arr = [2,20,30,5,0,54,222,55,51,36,25,0,3,5,52,25,102,]
function fan(x) {
var newArr = []
for(var i=x.length-1;i>=0;i--){
newArr[newArr.length]=arr[i]
}
return newArr
}
console.log(fan(arr))js
#函数实现任意数组升序排序-冒泡排序
var arr = [2,20,30,5,0,54,222,55,51,36,25,0,3,5,52,25,102,]
function fan(x) {
for (var i=0;i<=x.length-1;i++){ //外层循环趟数
for (var j=0;j<=x.length-i-1;j++){ //里面循环管每一次交换次数
if (x[j]>x[j+1]){
var temp=x[j]
x[j]=x[j+1]
x[j+1]=temp
}
}
}
return x
}
console.log(fan(arr))
----------------------------------------------------------------
#函数实现任意数组降序排序-冒泡排序
var arr = [2,20,30,5,0,54,222,55,51,36,25,0,3,5,52,25,102,]
function fan(x) {
for (var i=0;i<=x.length-1;i++){ //外层循环趟数
for (var j=0;j<=x.length-i-1;j++){ //里面循环管每一次交换次数
if (x[j]<x[j+1]){
var temp=x[j]
x[j]=x[j+1]
x[j+1]=temp
}
}
}
return x
}
console.log(fan(arr))
竹影篱の文档