函数定义
函数声明
函数表达式
函数执行
fn() //执行函数
function fn(){ // 函数声明
console.log("卡布奇诺"); //函数表达式
}
注意:函数可以先执行使用,后声明
函数可以放在数组和对象中,常见与放在普通对象里面。
let arr = [function(){console.log(1)}, "卡布奇诺"];
arr[0]
let obj = {
fn: function (){console.log("kkkk")}
}
obj.fn()
具名,匿名:有函数名的叫具名,没有函数名的叫匿名
立即执行函数:定义时,就立马被使用
作用:创建一个独立的作用域,不会让变量挂载到全局上去
(function(){}())
(function(){})()
+function(){}()
-function(){}()
~function(){}()
!function(){}()
函数参数:
形参:写在函数定义时 () 内的 模拟 传进来的数据 参与代码块里的逻辑 一个占位
实参:写在 函数 执行时() 内的
function fn(value, value2){
console.log("我真" + value + value2);
}
形参 = 实参
形参没有接收到实参的话 则 形参 = undefined
没有形参 只有实参 不做反应 只运行
有形参 不传实参
形参接收 undefined
有形参 有实参
个数一致 按顺序接收
个数不一致
形参多于实参
先按顺序接收一一对应 没有接收到实参的 就是undefined
实参多与形参
先按顺序接收 多余的实参 不管了
正常人的操作 需要多少参数 就写多少形参和实参
...rest 接收 剩余参数
可以和其他形参 并存 其他形参先接收 剩余的才给rest去接收 ...rest必须放在末尾