有关JavaScript的函数定义和函数的两种声明方式

news2024/9/21 20:52:36

1.函数

       函数是一段可重复执行的代码块,它可以接收参数,并返回结果。在JavaScript中,函数用于封装可重用的代码,提高代码的可读性和可维护性。
   1.1 函数的定义

    函数的定义包括以下几个部分:

  1. 函数名称:用于标识函数的唯一名称。
  2. 参数:函数在执行时可以接收一个或多个参数,参数之间用逗号分隔。
  3. 函数体:包含一系列JavaScript语句,用于实现特定的功能。
  4. 返回值:函数执行完成后,可以返回一个结果。

        function 函数名(形参1, 形参2, 形参3, ...) {
            函数体
            return 返回值;
        }
   1.2 函数的调用
        函数名(实参1, 实参2, 实参3, ...);

2.函数的两种声明方式

   2.1 函数声明---命名函数
         function 函数名(形参1,形参2,形参3...){
              函数体;
            }

       特点:

       函数声明具有函数声明提升的特性,即在代码执行前,函数声明已经被提升到作用域的顶部。

       函数声明可以出现在代码的任何位置,但在调用函数之前必须先声明。

   2.2 函数表达式---匿名函数
         let 函数名 = function(形参1,形参2,形参3...){
              函数体;
            }

       特点:

       函数表达式没有函数声明提升的特性,因此在赋值之前不能调用该函数。

        函数表达式可以创建匿名函数,也可以创建具名函数。

   2.3 函数的调用:
              函数名(实参1,实参2,实参3...);

         函数的使用方式:先定义,后调用,不调用不执行

3.函数定义的相关练习

4.函数的综合练习

     练习1:定义一个函数模拟计算器功能,可以计算任意两个数四则运算的结果(+,-,*,/)

<!DOCTYPE html>

<html lang="en">

  <head>

    <meta charset="UTF-8" />

    <meta name="viewport" content="width=device-width, initial-scale=1.0" />

    <title>Document</title>

  </head>

  <body>

    <script>

      // 练习1:定义一个函数模拟计算器功能,可以计算任意两个数四则运算的结果(+,-,*,/)

      //let x=parseFloat((0.1+0.2).toFixed(1));精准度

      function calculator(num1, num2, operator) {

        if (typeof num1 !== "number" || typeof num2 !== "number")

          return "输入的数据类型有误";

        switch (operator) {

          case "+":

            return parseFloat((num1 + num2).toFixed(2));

          case "-":

            return num1 - num2;

          case "*":

            return parseFloat((num1 * num2).toFixed(2));

          case "/":

            if (num2 === 0) return "除数不能为0";

            return num1 / num2;

          default:

            return "输入的运算符有误";

        }

      }

      let total = calculator(1, 2, "*");

      console.log(total);

    </script>

  </body>

</html>

运行结果如下:

5.总结

       在JavaScript中,函数定义和声明方式多种多样,掌握它们有助于我们编写更高效、更优雅的代码。函数声明和函数表达式各有优劣,具体使用哪种方式取决于实际场景和需求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2051623.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Hive3:表性能优化-分区与分桶

一、分区 1、概念 我们知道&#xff0c;一个Hive表&#xff0c;对应的HDFS是一个文件夹。 那么&#xff0c;当数据非常多的时候&#xff0c;存放在一个文件夹中&#xff0c;后期进行查询操作会影响性能。 所以&#xff0c;Hive引入了分区管理的方式。 本质就是&#xff0c;在…

Datawhale X 魔搭 AI夏令营-AIGC方向-LoRA学习笔记

LoRA&#xff08;Low-Rank Adaptation&#xff09;是一种用于优化大规模预训练模型的微调技术&#xff0c;特别适用于在资源有限的情况下&#xff0c;对模型进行高效且低成本的微调。LoRA的核心思想是通过低秩分解方法&#xff0c;仅微调模型的少数参数&#xff0c;从而显著减少…

关于图像亮度相关的调试总结

1、问题背景 关于图像亮度的调试&#xff0c;是整个ISP中非常重要的一块&#xff0c;它决定了图像整体的亮度、对比度、细节、以及噪声&#xff0c;对人眼有非常直观的感受&#xff0c; 之前也就具体问题&#xff0c;整理过几篇图像亮度模块相关的调试总结&#xff1a; 关于图…

标题中有多少个字符(c语言)

1.//描述 //凯刚写了一篇美妙的作文&#xff0c;请问这篇作文的标题中有多少个字符&#xff1f; //注意&#xff1a;标题中可能包含大、小写英文字母、数字字符、空格和换行符。统计标题字 符数时&#xff0c;空格和换行符不计算在内。 //输入描述&#xff1a; //输入文件只有一…

【12】KMP和Manacher算法

目录 一.KMP算法解决的问题 二.Manacher算法解决的问题 基本概念 优化 一.KMP算法解决的问题 暴力求解复杂度O(N*M) next数组&#xff1a;next[i]表示arr[0...i-1]的前缀和后缀的最长公共长度。 Y位置失败&#xff0c;将前缀和后缀完全匹配&#xff0c;将前缀的部分和后缀对…

软件测试---接口自动化

一、pythonrequests模块 &#xff08;1&#xff09;requests全局观 安装&#xff1a;pip install requests 1.发送请求 ①requests.get() 发送get请求 ②requests.post() 发送post请求 data和json的区别&#xff1a;取绝于你需要传递的参数的类型。 files&#xff1a;文件上…

大学成长之路:如何从烧锅炉的逆袭成为FPGA大厂高管

如何从烧锅炉的逆袭成为FPGA大厂Sales Director 在即将到来的开学季&#xff0c;很多学子从高中生成为一个大学生&#xff0c;走入新的征程。大学生涯是人生的一个非常重要的阶段&#xff0c;如何度过大学4年的时光&#xff0c;并学有所成&#xff0c;是很多大学新生和家长思考…

Spring IoCDI(下)—DI的尾声

我们之前学习了控制反转IoC&#xff0c;接下来就开始学习依赖注入DI的细节。 依赖注入是一个过程&#xff0c;是指IoC容器在创建Bean时&#xff0c;去提供运行时所依赖的资源&#xff0c;而资源指的就是对象。我们使用 Autowired 注解&#xff0c;完成依赖注入的操作。简单来说…

AMBA-CHI协议详解(六)

AMBA-CHI协议详解&#xff08;一&#xff09; AMBA-CHI协议详解&#xff08;二&#xff09; AMBA-CHI协议详解&#xff08;三&#xff09; AMBA-CHI协议详解&#xff08;四&#xff09; AMBA-CHI协议详解&#xff08;五&#xff09; AMBA-CHI协议详解&#xff08;六&#xff09…

JavaSocket编程+JDBC实战技术

一、JavaSocket编程 1.1HTTP协议 后端原理 2. 特点 同步&#xff1a;就是两个任务执行的过程中&#xff0c;其中一个任务要等另一个任务完成某各阶段性工作才能继续执行&#xff0c;如厨师A炒番茄&#xff0c;将葱花放入锅中&#xff0c;然后需要放入番茄&#xff0c;但是厨…

【自动驾驶】控制算法(二)三大坐标系与车辆运动学模型

写在前面&#xff1a; &#x1f31f; 欢迎光临 清流君 的博客小天地&#xff0c;这里是我分享技术与心得的温馨角落。&#x1f4dd; 个人主页&#xff1a;清流君_CSDN博客&#xff0c;期待与您一同探索 移动机器人 领域的无限可能。 &#x1f50d; 本文系 清流君 原创之作&…

Dubbo服务自动Web化之路

本文字数&#xff1a;6047字 预计阅读时间&#xff1a;40分钟 01 故障出现 事情起源于一次故障&#xff0c;2023年12月14日14点26分&#xff0c;大量Dubbo服务报出异常&#xff0c;无法链接zookeeper集群&#xff1a; Session 0x0 for server dubboZk.xxx.com/10.x.x.x:2181, C…

【高校科研前沿】南方科技大学冯炼教授等人在遥感顶刊RSE发文:全球人类改造的基塘系统制图

1.文章简介 论文名称&#xff1a;Global mapping of human-transformed dike-pond systems&#xff08;全球人类改造的基塘系统制图&#xff09; 第一作者及单位&#xff1a;Yang Xu&#xff08;南方科技大学环境学院&#xff09; 第一通讯作者及单位&#xff1a;冯炼&#x…

机器学习:线性回归算法(一元和多元回归代码)

1、线性回归 1、数据准备&#xff1a; 描述如何获取和准备数据。 2、图像预处理&#xff1a; 包括图像读取。 3、将数据划分为训练集和测试集。 4、计算数据的相关系数矩阵。 5、模型训练&#xff1a; 详细说明如何使用线性回归算法训练模型&…

京东2025届秋招 算法开发工程师 第2批笔试

目录 1. 第一题2. 第二题3. 第三题 ⏰ 时间&#xff1a;2024/08/17 &#x1f504; 输入输出&#xff1a;ACM格式 ⏳ 时长&#xff1a;2h 本试卷还有选择题部分&#xff0c;但这部分比较简单就不再展示。 1. 第一题 村子里有一些桩子&#xff0c;从左到右高度依次为 1 , 1 2…

达梦数据库的系统视图v$reserved_words

达梦数据库的系统视图v$reserved_words 达梦数据库&#xff08;DM Database&#xff09;提供了一系列系统视图以帮助管理员和开发人员了解数据库的状态和配置。V$RESERVED_WORDS 是其中一个系统视图&#xff0c;它显示了数据库系统中已保留的关键字。这些关键字在SQL语句中具有…

SpringBoot自动配置--原理探究

什么是自动配置&#xff1f; SpringBoot自动配置是指在SpringBoot应用启动时&#xff0c;可以把一些配置类自动注入到Spring的IOC容器中&#xff0c;项目运行时可以直接使用这些配置类的属性。简单来说就是用注解来对一些常规的配置做默认配置&#xff0c;简化xml配置内容&…

【三维目标检测】H3DNet(三)

【版权声明】本文为博主原创文章&#xff0c;未经博主允许严禁转载&#xff0c;我们会定期进行侵权检索。 参考书籍&#xff1a;《人工智能点云处理及深度学习算法》 H3DNet数据和源码配置调试过程以及主干网络介绍请参考上一篇博文&#xff1a;【三维目标检测】H3DNet&am…

[Java]面向对象-内部类

类的五大成员&#xff1a;属性、方法、构造方法、代码块、内部类 内部类 在一个类里边再定义一个类。可以在外部其他类中创建内部类对象并调用它的方法 public class Outer {//外部类public class inner{//内部类} } 内部类使用时机&#xff1a; 内部类表示的事物是外部类…

打造高可用集群的基石:深度解析Keepalived实践与优化

高可用集群 集群类型 集群类型主要分为负载均衡集群&#xff08;LB&#xff09;、高可用集群&#xff08;HA&#xff09;和高性能计算集群&#xff08;HPC&#xff09;三大类。每种集群类型都有其特定的应用场景和优势。 1. 负载均衡集群&#xff08;LB&#xff09; 负载均衡集…