普通函数
function f1(a, b) {
return "普通函数f1:" + a * b
}
console.log(f1(3, 7));
var $ = function f2() {
return '普通函数f2'
}
console.log($())
箭头函数
// 多个参数的箭头函数
const f3 = (param1, param2) => {
return "箭头函数f3:" + param1 + param2
};
const res3 = f3("hello", "World");
console.log(res3)
// 简化写法:如果箭头函数只有一个参数,可以省略括号
const f4 = param => {
return "箭头函数f4:" + param
};
const res4 = f4("hello");
console.log(res4)
// 箭头函数的返回值是表达式的结果,可以省略 return 关键字和大括号
const add = (a, b) => "箭头函数f5:" + (a + b);
console.log(add(3, 4));
使用逗号操作符定义多个函数
var f6 = function () {
return "使用逗号操作符定义多个函数f6";
}, f7 = function () {
return "使用逗号操作符定义多个函数f7";
};
var res6 = f6();
var res7 = f7();
console.log(res6);
console.log(res7);
使用 Function 构造函数动态地创建函数
var f8 = new Function('a', 'b', 'return a + b');
var res8 = f8(3, 4);
console.log('使用 Function 构造函数动态地创建函数:', res8);
使用解构赋值来定义函数的参数
function f9({x, y}) {
return `使用解构赋值来定义函数的参数:x值:${x} y值:${y}`
}
console.log(f9({x: 5, y: 8}))
function f10([x, y]) {
return `使用解构赋值来定义函数的参数:x+y值:${x + y}`
}
console.log(f10([10, 20]))
对象字面量函数
var obj = {
method1: function () {
return "对象字面量函数对象方法1";
},
// 使用 ES6 的简化写法
method2() {
return "对象字面量函数对象方法2";
}
};
console.log(obj.method1());
console.log(obj.method2());
* 自执行函数,匿名函数
* 函数内部的变量在函数执行后会被销毁,因此函数内部的变量不会影响到外部作用域。
* 1,使用括号包裹函数体,(IIFE)写法
* 2,逻辑非运算符 ! 将函数转换为函数表达式
var f11 = (function (b) {
var a = 10;
var m = {
author: '李白',
poetry: function (p) {
return p
}
};
return {sum: a + b, m};
})(20);
console.log("自执行函数f11返回的sum结果:", f11.sum); // 30
console.log("自执行函数f11返回的m结果:", f11.m.author);
console.log("自执行函数f11返回的m结果:", f11.m.poetry('逍遥半生酒中意,一剑碎影向征程'));
// 取自执行函数返回方法
var f12 = (function (b) {
var a = 10;
// 使用立即执行函数表达式(IIFE),并返回一个内部函数,是闭包的一种风格
// 内部函数可以访问外部函数的作用域中的变量a或b,保护变量安全
return function (c) {
return a + b + c;
};
})(20);
console.log("自执行函数f12返回的结果:", f12(30)); // 60
// 自执行函数 逻辑非运算符 !
!function () {
var a = 10;
var b = 20;
console.log("逻辑非运算符 ! 自执行函数:", a * b);
}(); // 200
// 关于!自执行函数的赋值
var f13 = !function () {
var a = 10;
var b = 20;
// ! 运算符会将整个自执行函数的结果取反.返回bool值
// return 有值 则f13结果为:false,无值则返回true
return 0;
}();
console.log("自执行函数f13返回的结果:", f13); // true
// 内部返回的是一个函数,而函数在 JavaScript 中被视为真值
var f14 = !(function (b) {
return function (c) {
return 0;
};
})(25);
console.log("自执行函数f14返回的结果:", f14); // false