函数基础
何为函数(function)
我们去吃kfc.如果每个人都单点 薯条/可乐/汉堡/上校鸡块 --如果很多人都是点这一套,每次都单点很麻烦 -- 套餐
编程函数 -- 把一个经常用到的功能包装起来,取个有意义的名字. 要用的时候调用即可
js内置函数:
console.log()
alert()
Number()
prompt()
变量 = 保存数据
函数 = 保存代码
函数的基本使用
1.定义
function 函数名(){
函数内容
}
function fun(){
alert('多喝热水')
}
2.调用
函数名()
fun()
输出语句(函数名()) // 调用函数,输出返回值
console.log(fun())
let 变量名 = 函数() // 调用函数,把返回值赋值给变量
let name = fun()
函数命名规则规范:
1.由数字,字母,下划线_组成 (不推荐中文)
2.不能用关键字命名 if break for
3.不能数字开头
4.区分大小写 Name name. 自定义函数最好纯小写
5.见名知意
返回值(return)
function 函数名(){
代码
return 返回值
}
函数 -- 做一件事
函数代码 -- 做事过程
函数返回值 -- 做事结果
函数里的数据,如果是用输出语句打印出来,那就是只能看用不了
如果想接着使用函数里的数据,那就用return把数据返回出去
没设置返回值的情况下,返回值默认为undefined
函数参数
形参: 没有具体值,在函数里先占位 -- 定义阶段
实参: 有具体值,运行时会取代形参 -- 调用阶段
我要拍部电视剧: 仙剑奇侠传
角色 -- 形参 -- 李逍遥 -- 角色有了,谁演还不知道
演员 -- 实参 -- 胡歌 -- 演员出演该角色时,他就成为了李逍遥
为什么要有函数参数???
让函数变得更加灵活,里面的数据不是定死的,而是可以灵活改变的
必备参数: 有几个形参,就传几个实参. 不多也不要少. 如果少了,值为undefined
function 函数名(参数1,参数2){
代码
}
函数名(数据1,数据2)
默认参数: 声明参数时,就先赋值.如果有多个参数,只能从右边开始赋值
function 函数名(参数1,参数2 = XXX){
代码
}
函数名(数据1)
function fun3(name,age=18){
console.log(`你好.我叫${name},我今年${age}岁`)
}
fun3('婷婷')
fun3('麒麟',28) // 设置了默认值,接着传参,会覆盖
匿名函数(自执行函数)
1.函数只执行一次,懒得取名
2.函数只执行一次,懒得调用,想让它自动执行
语法:
!(function(形参){
函数代码
})(实参);
1. !()
2. !(function(形参))
3. !(function(形参){
函数代码
})
4. !(function(形参){
函数代码
})(实参);
作用域(了解即可)
作用域指的是一个数据能够被使用的范围
在js中,作用域一般用{}来控制
作用域分为全局和局部:
全局: 整个程序都可以使用的数据
局部: 程序里部分位置才能使用的数据 ( 函数 / 类)
let 和 var的主要区别就是作用域. let的作用域会更严谨
练习
1.定义一个函数,内容为输出一句('人生苦短,我选python + JavaScript')并调用该函数
2.定义一个函数,该函数会接收2个数值数据.返回里面较大的值.并调用输出
3.定义一个函数,该函数会接收1个数值数据作为参数,函数功能为输出参数次数遍的'多喝热水' --> 传100,就输出100遍
4.定义一个函数,该函数会接收一个字符串数据为你的名字,有个默认参数值为'多喝热水'. 函数功能为输出一句 '<你的名字>要<多喝热水>' .并调用输出
5.把题目4的函数升级为自执行函数(匿名函数)