函数

135 阅读3分钟

简介

介绍:函数就是执行特定任务的代码块

优点:精简代码方便复用,提高开发效率

函数的分类:匿名函数,具名函数,构造函数,随机函数

封装函数

声明语法:function 函数名(){ 函数体 }

调用语法:函数名()

函数调用特点:随时调用,随时执行,可重复调用

function fn() {
	console.log(1)
}
fn()  调用函数

注意:==函数不调用,自己不执行==

匿名函数

介绍:没有名字的函数,无法直接使用

语法:function() { }

使用匿名函数的方法:

函数表达式

介绍:通过匿名函数赋值给变量的方式使用,称为函数表达式

let getSum = function() {
	函数体
}
getSum()

使用new创建函数

语法:const 函数名 = new Function('参数1','参数2','函数体')

const fn = new Function('num1', 'num2', 'alert(num1+num2)')  // 函数体 在传递参数时 必须是字符串!!!
fn(1, 2)

立即执行函数

**介绍:**函数不需要调用,立即执行,其实本质上已经调用了

**作用:**防止变量污染

语法:

(function(){ xxx  })();  //最后一个小括号的作用其实是在调用前面的匿名函数,最后一个小括号里的参数是实参
(function(){xxxx}());

注意:多个立即执行函数使用时 ==必须用分号隔开==

方法一:

立即执行函数1.gif

立即执行函数1.png

方法二:

立即执行函数2.gif

立即执行函数2.png

方法三:

前面加上运算符+ - * / ! ~都可以

+function() { }()

回调函数

介绍:当一个函数当做参数来传递给另外一个函数的时候,这个函数就是回调函数

本质:回调函数本质还是函数,只不过把它当成参数使用

回调函数有哪些:事件监听里的函数,forEach里的,map里的都称为回调函数

使用场景:使用匿名函数做为回调函数比较常见

btn.addEventListener('click', function () {})  这里的匿名函数  相当于 事件监听的形参

函数名命名规范:

  1. 和变量命名基本一致
  2. 尽量小驼峰式命名法
  3. 前缀应该为动词
动词含义
can判断是否可执行某个动作
has判断是否含义某个值
is判断是否为某个值
get获取某个值
set设置某个值
load加载某些数据

函数的参数

形参:声明函数时写在函数名右边小括号里的叫形参(形式上的参数)可以理解为变量

实参:调用函数时写在函数名右边小括号里的叫实参(实际上的参数)可以理解为给变量赋值

作用:可以极大提高函数的灵活性

参数的传递:是把实参传递给形参

function getNum(形参1,形参2) {
    console.log(形参1 + 形参2)
}
getNum(实参1,实参2) 

注意:

  • 尽量保持实参和形参个数一致

  • 参数之间用逗号分隔

形参默认值

作用:提高用户体验,防止在没有实参传递的时候出现bug

function getSum(x = 0, y = 0) {
	document.write(x + y)
}
getSum()  输出为0
getSum(1,2)  输出为3

这个默认值只会在缺少实参参数传递时 才会被执行,所以有参数会优先执行传递过来的实参, 否则默认undefined

函数返回值

介绍:把函数处理结果返回给调用者

语法:return 数据

function fn(num1,num2) {
	return num1 + num2
}
let fun = fn(10,20) 
console.log(fun)  // 30

注意:

  • return 后面的数据不要换行写
  • ==不要在return下面写任何代码==,因为return立刻结束函数运行
  • 两个相同的函数后面的会覆盖前面的函数
  • 没有return的函数,默认返回值为undefined
  • 在对象外的叫 函数 ,在对象里面的叫 方法

return和break的区别:

return是退出函数

break是退出循环