javaSprict 03 函数的使用

简介: 本文将讲述javaSprict中函数的声明,调用方法

前言

本文将讲述函数的声明,使用,如何传递值

一、函数是什么?

本质上是一堆具有特殊功能的代码块,便于人们精简代码减少页面代码的冗余

二、使用步骤

1.声明变量

<!-- 函数的使用 -->
    <!-- 1.声明变量     变量命名规则基本一致,小驼峰,前缀尽量为动词-->
    <!-- 定义函数完毕后是存放在内存中欧冠,执行的时候调用 -->
    <!--     function 函数名(){
        函数体(函数的构成部分,只有被调用方法名的时候才会被执行)
    } -->
    <!-- 调用方法:函数名() -->
    <script>
function getTotal() {
    // 函数体,这里写方法的具体功能
     }

2.调用函数

方法名()

注意点:方法可以多次调用,方法只有调用的时候才会被执行。

2.1方法求和案例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        getSum()
        function getSum() {
            // 两数求和
            let num1 = +prompt('请输入第一个数')
            let num2 = +prompt('请输入第二个数')
            sum = num1 + num2
            console.log(sum);
        }
    </script>
</body>
</html>

3.函数传参

函数中的两大参数:形参与实参数

形参:声明函数时写在函数名右边小括号里面的叫形参(形式上的参数)

实参:调用函数时写在函数名右边小括号里的叫实参(实际上的参数)

3.1 函数传参-参数默认值

形参: 可以看做变量,但是如果一个变量不给值,默认是什么? ➢ undefined。

注意点:

  • 当用户不输入实参的时候,undefined+undefined为NaN
  • 为了避免出现NaN我们可以在定义的时候给形参设置一个初始值(可为任何数,一般为0)
  • 如果函数结束有return 则将以return的那条语句作为结果传递调用者,不会显示undefined。会输出return的值!!!

4.函数的返回值

4.1什么是函数的返回值?

  • 当调用某个函数,这个函数会返回一个结果出来
  • 这就是有返回值的函数
  • 函数本身不处理结果,而是交给调用者处理
  • 函数内部不需要输出结果,而是返回结果

4.2什么时候需要返回值?

当函数需要将内部数据交给外部调用的时候就需要return将值传递给调用者

4.3 返回值怎么写?

  • 在函数体中使用 return 关键字能将内部的执行结果交给函数外部使用
  • return 后面代码不会再被执行,会立即结束当前函数,所以 return 后面的数据不要换行写
  • return函数可以没有 return,这种情况函数默认返回值为 undefined
  • 再次插入一张博主今天做案例

8f28fac00d4341b28059e5034df35ec1.png

5.综合案例:

5.1方法return的返回值传递到不同类型中

919b12debb1b4a72b0556890304ef7c7.gif

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        a {
            list-style: none;
            text-decoration: none;
        }
    </style>
</head>
<script>
    let num1 = +prompt('请输入第一个数')
    let num2 = +prompt('请输入第二个数')
    let val = getSum(num1, num2)
    document.write(`<a href="#">${val}</a>`)
    document.write(`<button>${val}</button>`)
    // 也可以直接输出
    // document.write(getSum(1, 2))
    function getSum(x = 0, y = 0) {
        return x + y
    }
    // 返回值细节:
/*     函数的执行流程:1.调用函数(传递参数)2.执行函数体3.return关键字返回结果到调用者
        return 后面的代码不会执行
        不是所有的函数都有返回值(alert),没有的返回值函数为undefined */
</script>
</body>
</html>

5.2开支统计

6a3d649d71c9450ba56ecea6c236ebd9.gif

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        //注:代码执行是从上往下执行,如果ballance是写在  document.write(`本月的总共剩余额为${ballance}RMB`) 下则会报错,提示ballance需要先声明
        let ballance=select()
        document.write(`本月的总共剩余额为${ballance}RMB`)
        function select() {
            // 连续出现相同的东西,可直接写一个方法就可以了,不需要写switch判断往下走.....
            let search = +prompt('请输入银行卡余额:')
            let eat = +prompt('请输入当月食宿消费:')
            let exp = +prompt('请输入当月生活消费:')
            let sum = search - eat - exp
            return sum
        }
    </script>
</head>
<body>
</body>
</html>

5.3 return配合true做判断

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        //  需求:判断flag的值,如果为true就正常求和(不传入参数的时候默认就是true),如果为false就求平均数 
        document.write(handleData([1, 2, 3, 4, 5],8))
        // 直接输入true会报错,必须用一个变量来接受它,这里用的flag
        function handleData(arr, flag= true){
        let sum= 0
        for (let i = 0; i < arr.length; i++) {
            sum += arr[i]
        }
        if (flag) {
            return sum
        } else {
            return sum / arr.length
        }
    }
    </script>
</body>
</html>


相关文章
|
Android开发 计算机视觉 C++
FFmpeg开发笔记(五十一)适合学习研究的几个音视频开源框架
音视频编程对许多程序员来说是一片充满挑战的领域,但借助如OpenCV、LearnOpenGL、FFmpeg、OBS Studio及VLC media player等强大的开源工具,可以降低入门门槛。这些框架不仅覆盖了计算机视觉、图形渲染,还包括多媒体处理与直播技术,通过多种编程语言如Python、C++的应用,使得音视频开发更为便捷。例如,OpenCV支持跨平台的视觉应用开发,FFmpeg则擅长多媒体文件的处理与转换,而VLC media player则是验证音视频文件质量的有效工具。
321 0
FFmpeg开发笔记(五十一)适合学习研究的几个音视频开源框架
|
监控 安全 物联网
5G技术的革命性进步及其对社会的影响
5G技术作为移动通信领域的革命性进步,正深刻地影响着我们的生活和社会。它不仅提供了更快的数据传输速率和更低的延迟,还将引领着各个领域的创新和发展。从移动通信、工业、医疗到智能城市,5G技术正在改变着我们的世界,为未来带来更多可能性。然而,我们也需要解决一些挑战,确保5G技术的安全和可持续发展。随着技术的不断进步,5G技术的前景依然充满希望,将为我们的社会带来更多的创新和变革。
1358 1
5G技术的革命性进步及其对社会的影响
|
XML Web App开发 测试技术
python的Web自动化测试
【4月更文挑战第16天】Python在Web自动化测试中广泛应用,借助Selenium(支持多浏览器交互)、BeautifulSoup(解析HTML/XML)、Requests(发送HTTP请求)和Unittest(测试框架)等工具。测试步骤包括环境搭建、编写测试用例、初始化浏览器、访问页面、操作元素、验证结果、关闭浏览器及运行报告。注意浏览器兼容性、动态内容处理和错误处理。这些组合能提升测试效率和质量。
184 6
|
存储 运维 Kubernetes
在k8S中,生产环境的pv回收策略该如何选择?
在k8S中,生产环境的pv回收策略该如何选择?
|
Web App开发 测试技术 API
playwright使用:启动浏览器与多种运行方式
本文介绍了Playwright,一个用于浏览器自动化的强大工具,支持Chrome、Firefox和WebKit。展示了如何同步和异步启动浏览器,以及使用`with`语句和`start/stop`方法。通过设置`headless=False`可显示浏览器界面。Playwright的等待机制不同于Selenium,采用`slow_mo`全局减速或`wait_for_timeout`进行等待。文章还展示了填写表单和点击元素的示例,并预告下文将讨论元素定位方法。
|
程序员 编译器 C语言
【C语言基础】:动态内存管理(含经典笔试题分析)-1
【C语言基础】:动态内存管理(含经典笔试题分析)
|
消息中间件 负载均衡 Java
【Kafka】Kafka 中消费者与消费者组的关系与负载均衡实现
【4月更文挑战第11天】【Kafka】Kafka 中消费者与消费者组的关系与负载均衡实现
|
缓存 分布式计算 Apache
Apache Hudi与Apache Flink更好地集成,最新方案了解下?
Apache Hudi与Apache Flink更好地集成,最新方案了解下?
301 0
|
算法
MATLAB | 插值算法 | 一维interpn插值法 | 附数据和出图代码 | 直接上手
MATLAB | 插值算法 | 一维interpn插值法 | 附数据和出图代码 | 直接上手
704 0
|
前端开发 测试技术 Python
Python Selenium元素定位方法详解
Python Selenium元素定位方法详解