【学习笔记16】JavaScript函数封装习题

news2025/8/12 0:12:13

笔记初发

1、书写一个函数, 求任意两个数字的和, 把结果以弹窗的形式展示

  1. 书写一个函数
  2. 需要参数吗?            -->需要
  3. 需要几个参数?         —>两个
  4. 函数要做什么?         -->求和
  5. 然后弹窗的形式展示    -->alert(弹窗展示的值)
        function fn(num1, num2) {
            var sum = num1 + num2;

            // 向浏览器弹窗
            alert(sum);   // 300
        }
        fn(100, 200);

2、书写一个函数, 求任意两个数字的和, 把结果打印在控制台

  1. 书写一个函数
  2. 需要参数吗?         -->需要
  3. 需要几个参数?      -->两个
  4. 函数要做什么?      -->求和,打印在控制台
        function fn(a, b) {
            // 相当于钻了JS的漏洞
            var sum = a + b; 
            console.log(sum);
        }

        fn(1, 2)

3、书写一个函数, 求任意两个数字的和, 把结果输出在页面上

  1. 书写一个函数
  2. 需要参数吗?          -->需要
  3. 需要几个参数?        -->两个
  4. 函数要做什么?        -->求和,打印在页面
        function fn(a, b) {
            // 相当于钻了JS的漏洞
            var sum = a + b ;
            
            document.write(sum);
        }

        fn(1, 2)
        function fn(n) {

            // 计数器, 记录一下 if 是否执行
            var sum = 100;  
            for (var i = 2; i < n; i++) {   
                if (n % i == 0) { 
                    sum = 99 
                }
            }

            // 根据参数n是否为质数, 决定返回true还是false
            if (sum == 100) {
                // 如果sum == 100成立说明, for循环内部的if没有执行, 那么证明这个参数n 是质数
                return true
            } else if (sum == 99) {
                // 如果sum == 99成立说明, for循环内部的if执行了!!! 那么证明这个参数n不是质数
                return false
            }
        }
        var myFn = fn(7)    // true
        console.log(myFn)
        var myFn1 = fn(8)   //  false
        console.log(myFn1)

在这里插入图片描述

4、判断一个数字是否为质数

    1. 书写一个函数
    2. 需要参数吗?      ---> 需要
    3. 需要几个参数?    ---> 1个
    4. 需要返回值吗?    ---> 需要, 最好是返回布尔值!    是质数返回 true    不是返回 false

    质数的概念
        一个数, 除了1和它本身之外, 没有任何数能被他整除  ---> 这样的数字就是质数
        一个数, 能给被除了1和它本身之外的某个数整除,     ---> 这样的数字不是质数
         7   /  2 3 4 5 6    --->    7 是质数
         8   /  2 3 4 5 6 7  --->    8 不是质数
         9   /  2 3 4 5 6 7 8    --->  9 不是质数
        // 循坏遍历 获取1~25的数字
        for (var n = 1; n <= 25; n++) {  
            // 计数器
            var sum = 0 

            for (var k = 2; k < n; k++) {
                if (n % k == 0) {
                    sum = 100
                }
            }

            if (sum !== 0) {
                // console.log(n, '不是质数')
            } else {
                console.log(n, '是质数')
            }
        }

在这里插入图片描述

        function fn(n) {

            // 计数器, 记录一下 if 是否执行
            var sum = 100;  
            for (var i = 2; i < n; i++) {   
                if (n % i == 0) { 
                    sum = 99 
                }
            }

            // 根据参数n是否为质数, 决定返回true还是false
            if (sum == 100) {
                // 如果sum == 100成立说明, for循环内部的if没有执行, 那么证明这个参数n是质数
                return true
            } else if (sum == 99) {
                // 如果sum == 99成立说明, for循环内部的if执行了!!! 那么证明 这个参数n不是质数
                return false
            }
        }
        var myFn = fn(7)    // true
        console.log(myFn)
        var myFn1 = fn(8)   //  false
        console.log(myFn1)

在这里插入图片描述

5、封装一个函数, 判断一个数字是否为 水仙花数

  1. 写个函数
  2. 需要参数?      —> 需要
  3. 需要几个?      —> 一个
  4. 需要返回值?    —> 需要
  5. 返回什么?      —> 布尔值
        function fn () { }
        var fn = function (n) {
            // 拿到各个位置上的数字
            var baiW = parseInt(n / 100)
            var shiW = parseInt(n / 10 % 10)
            var geW = n % 10

            // 求各个位置上的数字的三次方  三个位置上三次方的和
            var sum = baiW ** 3 + shiW ** 3 + geW ** 3

            // 判断和是否等于它自身 
            // 根据参数n是否为水仙花数, 决定返回的布尔值, 是的话返回true, 不是返回false
            if (sum == n) {
                // 是水仙花数
                return true
            } else {
                // 不是水仙花数
                return false
            }
        }

        var a = fn(154)
        console.log(a)

6、封装一个函数, 对一个四位数字加密

    加密规则:
            1. 每一位上的数字+5    然后使用10的余数替代
            2. 一三交换位置, 二四交换位置
    举例:
        输入1234
        1. 每一位上的数字+5     ===> 6789
        2. 使用10的余数代替     ===> 6789
        3. 一三和二四交换位置   ===> 8967

        输入 5655
        1. 每一位上的数字 +5     ===> 0100
        2. 使用10的余数代替      ===> 0100
        3. 一三和二四  交换位置  ===> 0001   (这里需要打印0001, 不能打印1)
  1. 写一个函数
  2. 需要参数         —> 需要
  3. 需要几个参数?    —> 1个
  4. 需要返回值?      —> 需要
  5. 返回的是?        —> 加密后的数据
        function fn(n) {
            var qianW = (parseInt(n / 1000) + 5) % 10;
            var baiW = (parseInt(n / 100 % 10) + 5) % 10;
            var shiW = (parseInt(n / 10 % 10) + 5) % 10;
            var geW = (n % 10 + 5) % 10;

            return ('' + shiW + geW + qianW + baiW - 0);
        }
        var sum = fn(1234);
        console.log(1234, '加密后: ', sum);

7、封装一个函数, 求两个数字的最大公约数

  1. 写一个函数
  2. 需要参数吗?     —> 需要
  3. 需要几个?       —> 2个
  4. 需要返回值?     —> 需要
  5. 返回什么?       —> 最大公约数
        function fn(a, b) {
            /**
             *  最大公约数
             *    两个数的所有约数中, 相同的, 称之为两个数的公约数,  其中最大的哪一个为最大公约数
             *
             *  什么是约数
             *      整数x除以整数y(y != 0) 除得的商正好是整数而没有余数,我们就说x能被y整除,或 y能整除x。
             *      x 称为y的倍数,y称为x的约数
            */
            for (var i = a; i >= 1; i--) {
                if (a % i == 0 && b % i == 0) {
                    return i;
                }
            }
        }
        var num = fn(8, 12);
        console.log(num);

8、封装一个函数, 求两个数字的最小公倍数

        // 封装一个函数, 求两个数字的最大公约数
        function fn(a, b) {
            /**
             *  最大公约数
             *      两个数的所有约数中, 相同的, 称之为两个数的公约数,  其中最大的哪一个为最大公约数
             *
             *  什么是约数
             *      整数x除以整数y(y != 0) 除得的商正好是整数而没有余数,我们就说x能被y整除,或 y能整除x。
             *      x称为y的倍数,y称为x的约数
            */
            for (var i = a; i >= 1; i--) {
                if (a % i == 0 && b % i == 0) {
                    return i;
                }
            }
        }
        var num = fn(8, 12);
        console.log(num);

        // 封装一个函数, 求两个数字的最小公倍数
        function fn1(a, b) {
            /**
             *  数学概念:
             *      a * b == 最大公约数 * 最小公倍数
             *      8 * 12 == 4 * 24
             *          96 == 96
             *
             *  根据数学概念 转换等式
             *      a * b == 最大公约数 *  最小公倍数
             *      a * b /  最大公约数 == 最大公约数 * 最小公倍数 / 最大公约数
             *      a * b /  最大公约数 == 最小公倍数
            */
            return a * b / fn(a, b);
        }
        var myFn1 = fn1(8, 12)
        console.log(myFn1)

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

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

相关文章

Area of a circle

In geometry, the area enclosed by a circle of radius r is πr2. Here the Greek letter π represents the constant ratio of the circumference of any circle to its diameter, approximately equal to 3.14159. One method of deriving this formula, which originate…

【矩阵论】4. 矩阵运算——张量积

4.2 张量积 4.2.1 定义 设A(aij)mn,B(bij)pq,则称如下分块矩阵(a11Ba12B⋯a1nBa21Ba22B⋯a2nB⋮⋮⋱⋮an1Ban2⋯ann)为A与B的张量积记作A⊗B(aijB)mpnq\begin{aligned} &设A(a_{ij})_{m\times n},B(b_{ij})_{p\times q},则称如下分块矩阵\left( \begin{matrix} a_{11}B&am…

【Dense Res2net:两个非局部注意模型:IVIF】

Res2Fusion: Infrared and Visible Image Fusion Based on Dense Res2net and Double Nonlocal Attention Models &#xff08;Res2Fusion: 基于密集Res2net和双非局部注意模型的红外和可见光图像融合&#xff09; 红外和可见光图像融合旨在生成具有出色场景表示和更好视觉感…

Zabbix最新6.2安装及使用!

zabbix官网 Zabbix 是由 Alexei Vladishev 创建&#xff0c;目前是由 Zabbix SIA 在持续开发和提供支持。 Zabbix 是一款能够监控众多网络参数和服务器的健康度和完整性的软件。Zabbix 使用灵活的通知机制&#xff0c;允许用户为几乎任何事件配置基于邮件的警报。这样可以快速…

数字赋能之学生返乡报备登记管理系统

年关将至&#xff0c;不少高校即将开启寒假模式了。对于不少地方而言&#xff0c;第一批返乡高潮快要到来了。当前&#xff0c;国内疫情防控形势异常严峻&#xff0c;且多地发生外返大学生初筛阳性&#xff0c;为切实保障广大返乡大学生及家人、朋友的身体健康&#xff0c;各个…

MYSQL 基本操作 (2)

分组查询和聚合查询&#xff1a; group by (列名) 根据查询的结果来进行分组&#xff0c;值相同的记录分到一组&#xff0c;然后针对每一组进行聚合。 目前表中&#xff0c;对容易一行进行分组操作都会去除重复名字项&#xff0c;同时将重复项打包进改组&#xff0c;例如&…

TingsBoard源码解析-登录认证-OAuth2认证

配置类&#xff1a;ThingsboardSecurityConfiguration 用户名密码登录 用户名密码登录请求URL: /api/auth/login 配置中发现&#xff1a;在默认的用户名密码认证之前添加了认证拦截器【RestLoginProcessingFilter】&#xff0c;而该拦截器拦截将拦截用户名密码登录请求&#x…

项目管理证书 PMP 的含金量高吗?

PMP 含金量&#xff0c;PMP有没有用&#xff0c;这类问题一直是大家关注的重点&#xff0c;知乎上几个相关问题热度也一直很高。 作为有 7 年项目经验的 PMP 持证者&#xff0c;我要跟大家说句实话&#xff1a; PMP 最基础的是项目管理领域的一个资格认证证书&#xff0c;相当…

FastDFS分布式文件系统

FastDFS分布式文件系统 FastDFS是由国人开发的针对中小文件存储的轻量级分布式文件系统&#xff0c;使用C语言进行开发&#xff0c;效率高、跨平台&#xff0c;可以在类UNIX系统上很好运行。整体设计以简单高效为原则&#xff0c;具有冗余备份、负载均衡、在线扩容等性能。 F…

开源生态企业反哺GitLink确实开源创新服务--DevOps引擎合作

日前&#xff0c;建木正式入驻到GitLink引擎模块下。 建木是DevOps领域的小能手&#xff0c;而GitLink又致力于提供强大的开源基础设施&#xff0c;双方可谓一拍即合&#xff0c;强强联手为开发者提供更愉悦、更轻松的研发体验&#xff01; GitLink&#xff08;确实开源&#…

Android结构优化 - Java、Kotlin项目结构分包

随着Android中 Java、Kotlin 的混编开发场景越来越多&#xff0c;其中大多人都会将 java文件 和 kt文件 放在同一个资源文件夹下&#xff0c;在项目越来越大的情况下&#xff0c;我们进行代码查询、项目重构、优化都不太便捷&#xff0c;所以本篇主要记录通过 kotlin分包、java…

MySQL集群:双主模式

目录 1、双主模式 1.1、高可用架构 1.2、MMM架构(基于双主模式) 1.2.1、MMM故障处理机制 1.2.2、MMM监控机制 1.3、MHA架构(基于主从模式) 1.3.1、MHA故障处理机制 1.3.2、MHA优点 1.4、主备切换 1.4.1、主备延迟问题 1.4.2、可靠性优先 1.4.3、可用性优先 2、双主…

关于 Laravel Redis 多个进程同时取队列问题详解

最近在工作中遇到了一个问题&#xff0c;开启多个进程处理队列会重复读取 Redis 中队列吗&#xff1f;是否因此导致重复执行任务&#xff1f;下面就来通过示例代码详细介绍下。 使用 Supervisor 监听 Laravel 队列任务&#xff0c;其中 Supervisor 的配置如下&#xff1a; 1 2…

.net----泛型

泛型泛型的基本概念集合类System. Collections. ArrayList泛型集合类System. Collection. Generic. List<T>ArrayListList<T>泛型的定义和类型参数类型参数<T>泛型类和泛型接口泛型类泛型接口泛型结构泛型方法泛型委托和泛型事件default关键字及协变和逆变协…

手动引入jar包,解决Dependency ‘XXX‘ not found的两种方式

目录引言一、使用systemPath导入&#xff08;一&#xff09;将jar包复制到指定文件夹&#xff08;二&#xff09;在pom文件中引入jar包**这里有一个超级大的坑&#xff0c;就是systemPath不支持聚合工程的父子传导&#xff01;&#xff01;&#xff01;****不支持pom工程的继承…

Linux零基础从入门到精通,必学的55个指令合集【上篇】

Linux学习笔记 资料下载&#xff1a; 链接: https://pan.baidu.com/s/1UvwkJaEJO7W3sU5qkCgKzA?pwdfe2f提取码: fe2f 本篇文章主要适用0基础的读者&#xff0c;内容会比较通俗易懂&#xff0c;也会有详细的图解教程&#xff0c;以及运行后的返回结果。我本人在系统性的学习…

G1D22-安装burpsuiteAttacKG

–0724 还有几分钟&#xff0c;把burpsuite安装一下 —0804 hh当然&#xff0c;和室友聊天去啦hhh java目录下找不到jdk&#xff0c;环境变量没法配emm&#xff0c;重新装一下。 emm原来这个文件夹是在安装时自己创建的 啊啊啊&#xff0c;我是猪emm javasuite闪退是因为环境变…

别瞎扯,元宇宙就是没有切实发展?

前言 最近两年&#xff0c;技术圈比较火的话题之一就是&#xff1a;元宇宙&#xff0c;而且2021年被看作是元宇宙元年&#xff0c;直到现在元宇宙话题依然不断&#xff0c;因为元宇宙在过去的一年里太火了。不管是在国内还是国外&#xff0c;元宇宙太火了&#xff0c;而且与元宇…

WPF项目实战布局--通用固件下载 C#

每个作品都是产品 C# WPF版效果&#xff1a; C# winForm版效果: 一.布局设计UI 1.主体&#xff1a;grid 2行 2列 00 下载按钮 20% 01进度条 80% &#xff08;同时显示百分比&#xff09; 10 11都是跨列 显示日志 2.细节&#xff1a;百分比与进度条Value绑定。下载按钮…

java EE初阶 — 计算机工作原理

文章目录1.操作系统2.操作系统的定位3.进程3.1 进程的基本了解3.2 操作系统内核是如何管理软件资源的3.3 PCB里描述了进程的哪些特征3.3.1 三个较为简单的特征3.3.2 进程的调度属性4.内存管理1.操作系统 操作系统是一个搞管理的软件。 对上要给软件提供稳定的运行环境。对下要…