函数

6,604 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第33天,点击查看活动详情

何为函数(function)

函数 = function = 正确念法 方笋

我们去吃kfc.每次都是单点 薯条/汉堡/上校鸡块 -->每次去都是点这几个东西.每次也都要单点.很麻烦 --> 套餐  

编程函数 --> 把一个会经常用到的功能包装起来.取一个有意义的名字.在需要用它的时候调用它即可

变量 = 保存数据
函数 = 保存代码

不要重复造轮子 --> 有写好的东西了你直接用就行.不需要自己再去花时间写.

函数的基本使用

1.定义
	function 函数名(){
		函数内容
	}

	function fun(){
		alert('多喝热水')
	}

2.调用函数
	函数名()
	fun()

	输出语句(函数名())  // 调用函数并输出返回值
	console.log(fun())

函数的命名规范:
	1.由数字,字母,下划线组成
	2.区分大小写 Fun fun
	3.不能数字开头/不能使用关键字(if else)
	4.见名知意
	5.自定义函数尽量用纯小写字母

返回值(return)

function 函数名(){
	函数内容
	return 返回值
}

函数 = 做一件事
函数代码 = 做事过程
函数返回值 = 做事结果

如果你想让你函数里的数据.能够继续使用(被其他函数/程序)使用.那就把数据return返回出去
如果你的数据只是给别人看.不涉及到使用/修改.那就用输出语句

返回值可以用来输出.赋值
	let 变量名 = 函数名() 
	输出语句(函数名())

没设置返回值的情况下.返回值默认为undefined

函数参数

形参: 没有具体的值.只是现在函数中占个位置 -- 定义阶段
实参: 有具体的值.在运行时会取代形参 -- 调用阶段

我要拍一部戏.
角色 -- 形参 -- 先有这个角色.让谁演还不清楚
演员 -- 实参 -- 真实的演员出演了角色.在拍戏的过程中.他就成为了角色

让函数变得更加灵活.让里面的数据不是定死的,而是可以灵活改变的

必备参数: 有几个形参,就传几个实参.不要多也不要少
	function 函数名(参数1,参数2){
		函数内容
	}
	函数名(数据1,数据2)
	function water(name){
        console.log(`${name}.班里我最喜欢的就是你,所以要多喝热水`)
    }
    water('吕文浩')

默认参数: 在声明形参的时候就赋值
	function 函数名(参数1,参数2 = 值){
		函数内容
	}
	函数名(参数)

	function fun3(name,talk='多喝热水'){
        console.log(`我叫${name}.我喜欢说${talk}`)
    }
    fun3('七零') 

匿名函数(自执行函数)

1.你的函数只执行一次,不想给它取名字
2.你的函数只执行一次,想让它自己运行.懒得加()调用

语法:
	(function(形参){
		函数内容
	})(实参);

	1.  ()
	2.  (function(形参))
	3.  (function(形参){
			函数内容
		})
	4.(function(形参){
			函数内容
		})(实参);		

作用域

作用域指的是一个数据能够被使用的范围
在JavaScript中.作用域一般是用{}控制的

letvar的核心区别就是两者的作用域不同.一个是会计作用域,一个是函数内作用域 --> let的作用域更严谨

作用域分为全局和局部:
	全局: 整个程序中,都可以自由使用的数据.
	局部: 整个程序中,只有部分位置才能使用的数据(函数内)