// ! 函数
// * 1. 命名函数
// 调用: 声明前,成功了,说明函数声明提升到了代码顶部
console.log(sum1(3, 4));
// 声明
function sum1(a, b) {
return "a + b = " + (a + b);
}
// 调用: 声明后
console.log(sum1(1, 2));
console.log("-------------");
// ? 必须遵循"先声明,后使用"原则,声明提升违背了该原则
// * 2. 匿名函数
// const ,let 没有声明提升的效果
// console.log(sum2(7, 8))
const sum2 = function (a, b) {
return "a + b = " + (a + b);
};
console.log(sum2(5, 6));
console.log("-------------");
// 以后, 首选匿名函数
// * 3. 箭头函数
// 匿名函数的语法糖(简化)
// 语法: 删除function, (...)=>{...}
let sum3 = (a, b) => {
return "a + b = " + (a + b);
};
console.log(sum3(9, 10));
// 只有一条return ,可不写 {...}
sum3 = (a, b) => "a + b = " + (a + b);
console.log(sum3(10, 11));
// 只有一个参数, (...)也可不写
sum3 = (username) => "Hello, " + username;
console.log(sum3("PHP学员"));
// 没有参数, (...)必须写
sum3 = () => "Hello, PHP学习者";
// _ 也是一个合法变量标识符
// sum3 = _ => 'Hello, PHP学习者'
console.log(sum3());
console.log("-------------");
// ! 箭头函数与匿名函数的最大区别: 没有自己的this
// * 4. 立即执行函数 (IIFE)
// 一个语法,用 (...) 包住 就转为"表达式"
let res = (function (a, b) {
return "a + b = " + (a + b);
})(60, 30);
console.log(res);