Javascript之函数 📅 发布时间:2026/7/9 21:33:49 👁️ 浏览次数: 目录引言一、函数的定义方式函数声明最基础推荐优先用函数表达式匿名函数赋值给变量箭头函数ES6 简化写法立即执行函数二、函数的核心特性参数规则return关键字函数的作用箭头函数 vs 普通函数三、使用建议引言函数是 JavaScript 的核心之一本质是封装可重复执行的代码块能接收输入参数、执行逻辑、返回输出结果。它让代码更模块化、易复用也是实现复杂逻辑的基础。一、函数的定义方式函数的定义方式一般分为四种分别为函数声明、函数表达式、箭头函数、立即执行函数函数声明最基础推荐优先用语法function 函数名(参数1, 参数2) { 代码逻辑; return 返回值; }特点存在函数提升可先调用后声明可读性强。代码演示// 定义函数计算两数之和 function add(a, b) { // a、b 是「形参」形式上的参数定义时占位 const result a b; return result; // return 规定返回值没有则默认返回 undefined } // 调用函数传入「实参」实际的参数值 const sum add(3, 5); console.log(sum); // 输出 8 // 函数提升先调用后声明也能执行 const result subtract(10, 4); function subtract(x, y) { return x - y; } console.log(result); // 输出 6函数表达式匿名函数赋值给变量语法const 函数名 function(参数) { 代码逻辑; }特点无函数提升必须先定义后调用适合作为参数传递比如回调函数代码演示// 定义匿名函数表达式 const multiply function(x, y) { return x * y; }; // 调用 const product multiply(2, 6); console.log(product); // 输出 12 // 错误示例无函数提升先调用会报错 // const result divide(8, 2); // 报错divide is not defined const divide function(a, b) { return a / b; };箭头函数ES6 简化写法语法const 函数名 (参数) { 代码逻辑; }特点语法极简、无自己的this核心区别、无arguments对象适合写短逻辑。代码演示// 基础写法多参数 多行逻辑 const calculate (a, b) { const sum a b; const diff a - b; return { sum, diff }; // 返回对象 }; console.log(calculate(5, 3)); // 输出 { sum: 8, diff: 2 } // 简化1单参数可省略括号 const double num num * 2; console.log(double(4)); // 输出 8 // 简化2单行逻辑可省略大括号和 return const square num num * num; console.log(square(6)); // 输出 36立即执行函数语法(function(参数) { 代码逻辑; })(实参);特点定义后立即执行创建独立作用域避免污染全局变量ES6 前常用现在可被let/const块级作用域替代。代码演示// 立即执行函数定义完马上执行 (function(name) { console.log(你好${name}); })(张三); // 输出你好张三二、函数的核心特性参数规则1. 形参 ≠ 实参数量JS 不强制参数数量匹配缺省参数默认undefined多余参数可通过arguments普通函数/...restES6获取。代码演示// 形参2个实参1个 → 第二个参数为 undefined function test(a, b) { console.log(a, b); // 输出 10 undefined } test(10); // 剩余参数...rest接收多余实参为数组 function sum(...nums) { return nums.reduce((total, num) total num, 0); } console.log(sum(1, 2, 3)); // 输出 62. 默认参数ES6给形参设置默认值实参缺少时使用function greet(name 游客) { console.log(欢迎 ${name}); } greet(); // 输出欢迎 游客 greet(李四); // 输出欢迎 李四return关键字函数内执行到return会立即终止后面的代码不再执行无return或return后无值函数默认返回undefined代码演示function test() { return 10; console.log(这行代码不会执行); } console.log(test()); // 输出 10 function empty() { // 无 return } console.log(empty()); // 输出 undefined函数的作用在JS中函数是不可或缺的它可以赋值给变量、作为参数传递给另一个函数回调函数、作为函数的返回值等等。代码演示// 1. 作为参数回调函数 function doSomething(callback) { const data 处理后的数据; callback(data); // 执行传入的函数 } // 传入箭头函数作为回调 doSomething((res) { console.log(res); // 输出处理后的数据 }); // 2. 作为返回值 function add(num) { // 返回一个新函数 return (x) x num; } const add5 add(5); console.log(add5(3)); // 输出 8箭头函数 vs 普通函数特性普通函数箭头函数this指向动态调用时定静态定义时继承外层arguments有参数伪数组无构造函数可作为构造函数不能new 会报错prototype有原型对象无三、使用建议普通业务逻辑优先用「函数声明」可读性高短逻辑 / 回调函数用「箭头函数」简洁需要独立作用域ES6 前用立即执行函数现在用let/const块级作用域替代避免陷阱箭头函数不要用于对象方法、构造函数this指向问题
基于MATLAB仿真的分布式电源接入对配电网影响深度分析:位置、功率与运行方式评估 1.分布式电源接入对配电网影响分析 关键词:分布式电源 配电网 评估 参考文档:《自写文档,联系我看》参考选址定容模型部分; 仿真平台:MATLAB 主要内容:代码主要做的是分布式电源接入场景下对配电网运行影响… 2026/7/8 20:37:02
网络被攻击,怎么办?有哪些措施和防护 网络遭攻击应急处置全攻略:识别攻击类型・落地应对手段・筑牢防护屏障 在数字化深度渗透的当下,网络已成为个人、企业乃至机构运行的核心载体,而网络攻击也随之呈现出手段多样化、攻击隐蔽化、危害扩大化的特征 —— 从个人设备的病毒入侵、… 2026/7/5 12:40:08
自动化测试总结 🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快最近要在新入职的公司准备一份自动化测试的培训,这是我在得知要做自动化测试培训以后,随手画了个图,压压惊:这是我能… 2026/7/8 17:33:54
深度解析:InsightFace_Pytorch框架下的人脸识别技术架构演进与选型策略 深度解析:InsightFace_Pytorch框架下的人脸识别技术架构演进与选型策略 【免费下载链接】InsightFace_Pytorch Pytorch0.4.1 codes for InsightFace 项目地址: https://gitcode.com/gh_mirrors/in/InsightFace_Pytorch 在人工智能技术快速发展的今天… 2026/7/9 21:59:06
OpenCore Simplify:3分钟快速创建完美黑苹果EFI配置的终极方案 OpenCore Simplify:3分钟快速创建完美黑苹果EFI配置的终极方案 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify OpenCore Simplify 是一款革… 2026/7/9 21:57:06
信奥P1911排兵布阵:状态压缩动态规划算法详解与C++实现 1. 项目概述与核心思路拆解看到“打卡信奥刷题(2511)用C实现信奥 P1911 L 国的战斗之排兵布阵”这个标题,很多信奥(信息学奥林匹克)的选手或者C算法爱好者可能会心一笑。这不仅仅是一道题,它背后代表了一类… 2026/7/9 21:55:05
直流减速电机位置环 PD 控制:为何舍弃 I 项?3 种场景对比与代码实现 直流减速电机位置环PD控制:为何舍弃I项?3种场景对比与代码实现在工业自动化、机器人控制等领域,直流减速电机的位置控制是一个基础但至关重要的环节。工程师们常常发现,在位置环控制中,PD(比例-微分&#x… 2026/7/9 21:55:05
Unity抛物线模拟:从数学公式到精准投掷物轨迹实现 1. 项目概述:为什么我们需要自己模拟抛物线?在Unity里做游戏,尤其是涉及到弓箭、投石车、手榴弹或者魔法飞弹这类需要抛物线轨迹的玩意儿,很多开发者第一反应就是:直接用Rigidbody加个力,让物理引擎去算不就… 2026/7/9 21:53:05
SRC 漏洞挖掘零基础教程:平台注册、信息搜集、漏洞提交全套实操 2026 年国内 SRC 产业持续规范化发展,各大互联网企业、政企单位漏洞响应平台全面扩容,依托合规漏洞挖掘发放赏金已经成为网络安全新手最稳妥的变现途径。补天SRC年度统计数据表明,现阶段 72.3% 的中高危有效漏洞均为业务逻辑类漏洞࿰… 2026/7/9 21:53:04
机器视觉与PLC集成:轮毂缺陷检测与字符识别误差控制在0.2mm内 机器视觉与PLC集成:轮毂缺陷检测与字符识别误差控制在0.2mm内的技术实现轮毂作为汽车关键零部件,其表面质量直接影响行车安全与美观。传统人工检测效率低且易漏检,而采用机器视觉与PLC集成方案可实现微米级精度检测。本文将深入解析高精度视觉… 2026/7/9 0:01:04
GBase 8a vs MySQL 8.0:ALTER TABLE语法与限制的5点关键差异对比 GBase 8a与MySQL 8.0:ALTER TABLE语法差异深度解析与实战指南1. 两种数据库的ALTER TABLE能力全景对比在数据库架构设计和运维过程中,表结构变更(DDL操作)是不可避免的需求。GBase 8a作为国产分析型数据库代表,与开源M… 2026/7/9 0:03:06
【大数据毕业设计】基于多源旅游数据的景区热度分析与推荐系统的设计与实现 基于 Django 的旅游偏好挖掘与景区推荐系统(源码+文档+远程调试,全bao定制等) 博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am… 2026/7/9 0:05:09
6个月转型AI工程师:实战路径与核心技能 1. 项目概述:6个月转型AI工程师的可行性路径在2023年大模型技术爆发的背景下,AI工程师岗位需求同比增长217%(LinkedIn数据)。不同于传统算法工程师需要3-5年培养周期,现代AI工程师更侧重工程化落地能力。我在硅谷科技公… 2026/7/7 11:26:57
TPAFE0808与PIC18F87K22的多通道信号采集方案 1. 项目背景与核心需求在工业自动化、医疗设备和科研仪器等领域,多通道信号采集与系统监测是基础且关键的技术需求。传统方案往往面临通道数量不足、信号调理复杂、系统集成度低等问题。TPAFE0808作为一款8通道模拟前端芯片,与PIC18F87K22微控制器的组合… 2026/7/8 20:15:17
STC3115与PIC18LF26K80构建高精度电池管理系统 1. STC3115与PIC18LF26K80在电池管理系统中的核心价值在现代电子设备中,电池管理系统(BMS)的重要性不亚于设备的核心处理器。STC3115作为一款高精度电池电量监测IC,与PIC18LF26K80微控制器的组合,构成了一个既能精确监控又能智能管理的完整解… 2026/7/8 14:25:08