Day17-对象

news2024/11/27 22:59:43

文章目录

  • 一 函数作业讲解
  • 二 函数版图书管理系统
  • 三 对象
    • 一 引入
      • 思考
    • 二 对象的创建和使用
      • 案例1
      • 案例2
      • 案例3
      • 案例4
      • 案例5-描述手机
      • 案例6-描述一组手机
      • 案例7-把对象作为函数的参数

一 函数作业讲解

    <script>
        //1编写函数,计算圆的面积和周长,在函数外由用户输入圆的半径,在自定义函数中计算并在函数外输出
        //计算圆的面积
        function circle(r){
            let area = 3.14 * r * r
            let len = 2*3.14*r
            return [area,len]
        }

        let n = prompt("请输入圆的半径")
        let arr = circle(n)
        console.log(arr);
    </script>
    <script>
        //2 在函数外接收用户输入X, Y , Z 3个数,编写函数计算这3个数的立方和并返回计算结果,在函数外输出最终结果 S=X3+Y3+Z3
        function power(x,y,z){
            let sum = x*x*x + y*y*y + z*z*z
            return sum
        }
        let n1 = prompt("请输入第一个数")
        let n2 = prompt("请输入第二个数")
        let n3 = prompt("请输入第三个数")
        let result2 = power(n1,n2,n3)
        console.log("立方和为",result2);
    </script>
    <script>
        //3.用函数求某数组元素的和,数组在函数外定义,在自定义函数中计算结果.并在函数外输出
        function fun3(array){
            let sum = 0;
            for (let index = 0; index < array.length; index++) {
                sum = sum + array[index]
            }
            return sum
        }

        let arr = [3,5,1,7,6]
        let result3 = fun3(arr)
        console.log(result3);
    </script>
    <script>
        //4 定义一个函数,用于计算m的n次幂,m和n在函数外由用户输入,调用函数计算,并在函数外输出结果

        function fun4(m,n){
            let k = 1
            for(let i=0;i<n;i++){
                k = k*m
            }
            return k
        }

        let a = prompt("请输入第一个数")
        let b = prompt("请输入第二个数")
        let result4 = fun4(a,b)
        console.log(result4);
    </script>
    <script>
        // 5 编写一个函数,接受整数n和字符串s作为参数,并返回重复n次的字符串s。
        // 例如

        // 6, "I"     -&gt; "IIIIII"
        // 5, "Hello" -&gt; "HelloHelloHelloHelloHello"

        function fun5(n,s){
            let y = ""
            for(let i=0;i<n;i++){
                y = y + s
            }
            return y
        }
        let result5 = fun5(3,"I")
        console.log(result5);
    </script>

二 函数版图书管理系统

<!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>
        let books = [
            [0,"HTML","网页结构布局",20],
            [1,"CSS","网页的样式设计",30],
            [2,"JavaScript","前端脚本语言",40]
        ]

        /**
         * 显示所有书籍
        */
        function showAll(){
            let msg = ""
            for (let index = 0; index < books.length; index++) {
                msg = msg + books[index] + "\n"
            }
            alert(msg)
        }

        /**
         * 添加书籍
        */
        function add(){
            let id = books.length
            let name = prompt("请输入书名")
            let desp = prompt("请输入描述")
            let price = prompt("请输入价格")
            //把价格转数值
            price = parseFloat(price)
            let book = [id,name,desp,price]
            //向books二维数组的末尾追加
            books.push(book)
            alert("添加成功")
        }

        /**
         * 更新书籍价格
        */
        function update(){
            let id = prompt("请输入要更新的书籍编号")
            if(books[id]){
                let price = prompt("请输入更新后的价格")
                books[id][3] = parseFloat(price)
                alert("更新成功")
            }else{
                alert("该图书不存在")
            }
        }

        /**
         * 删除书籍
        */
        function del(){
            let f = confirm("确认删除?")
            if(f){
                //删除最后一本书
                books.pop()
                alert("删除成功")
            }
        }

        /**
         * 菜单
        */
        function menu(){
            while(true){
                let choose = prompt("1显示所有书籍 2书籍添加 3书籍更新价格 4书籍删除 5退出")
                if(choose == 1){
                    showAll()
                }else if(choose == 2){
                    add()
                }else if(choose == 3){
                    update()
                }else if(choose == 4){
                    del()
                }else if(choose == 5){
                    alert("欢迎下次使用")
                    break
                }else{
                    alert("输入错误,请重新输入")
                }
            }
        }

        /**
         * 编写主函数
        */
       function main(){
            menu()
       }

       console.log("----开始--");
       //调用主函数
       main()
    </script>
</body>
</html>

三 对象

一 引入

我们用数组保存一个人的信息如下:

let p = [1,“赵日天”,“男”,25];

请输出此人的性别和年龄?

思考

这么做没问题,但大家反思用数组保存这样的数据真的好吗?

我觉得访问指定信息太麻烦了,而且代码可读性差,假如我们可以用如下风格的代码保存数据和访问指定信息就好了:

image-20230310143012739

二 对象的创建和使用

案例1

怎样用对象来保存一个人的name,sex,age信息?

请输出此人的姓名,性别和年龄?

    <script>
        /**
         * 对象的创建
         *  let 对象名 = {属性:值,属性:值,属性:值...}
         * 查看对象的数据
         *  对象名.属性
         * 
        */


        //创建对象,并存储一个人的信息 name,sex,age
        let p1 = {name:"赵昊",sex:"男",age:200}
        console.log(p1);

        //输出此人的姓名,性别和年龄
        console.log(p1.name);
        console.log(p1.sex);
        console.log(p1.age);

        console.log(p1["name"]);


        alert(p1)
    </script>

知识点

​ 对象的创建

​ 对象的属性

​ 键值对

案例2

结合上一个案例,在对象中添加一个函数

我们把在对象中编写的函数称为对象的方法

<script>
        /**
         * 创建对象
         * 
        */
        let p = {
                name:"赵昊",
                sex:"男",
                age:200,
                //在对象中存储一个函数
                study:function(){
                    //在函数中访问对象的属性,使用this.属性
                    console.log(this.name+"学习");
                }
            }

        //输出对象的属性
        console.log(p.name);
        console.log(p.sex);
        console.log(p.age);    
        //调用对象中的函数
        p.study()

</script>

知识点

​ 对象的方法

​ this

案例3

创建一个学生对象

let stu = {}

把学生的 姓名,性别,年龄信息保存到对象中

 stu.name = "赵昊"
 stu.sex = "男"
 stu.age = 200

查看赵昊的信息

console.log(stu.name);

年龄录入错误,修改赵昊的年龄为28

stu.age = 28

删除性别属性

delete stu.sex

知识点

​ 对象属性的 增删改查

案例4

用循环遍历对象的所有信息

let stu = {“name”:“王诛魔”,“sex”:“男”,“age”:20};

    <script>
        let stu = {"name":"王诛魔","sex":"男","age":20};
        // 对象的遍历
        // for(let 变量名 in 被遍历的对象){

        // }
        for(let key in stu){
            console.log(key,stu[key]);
        }
    </script>

案例5-描述手机

    <script>
        // 使用对象来存储一部手机的信息
        let phone = {
                name:"Xiaomi13",
                price:4599,
                version:["12G+256G","8G+128G","8G+256G","12G+512G"],
                color:["黑色","白色","远山蓝","旷野绿"]
        }
        //查看对象中的数据
        console.log(phone.name);
        console.log(phone.price);
        console.log(phone.version);
        for(let i=0;i<phone.version.length;i++){
            console.log(phone.version[i]);
        }
        console.log(phone.color);
        for(let i=0;i<phone.color.length;i++){
            console.log(phone.color[i]);
        }
    </script>

案例6-描述一组手机

<script>
    /**
         * 如何去存储多部手机?
         *  使用数组
         *  
         */ 
    let arr = [
        {
            name:"Xiaomi13",
            price:4599,
            version:["12G+256G","8G+128G","8G+256G","12G+512G"],
            color:["黑色","白色","远山蓝","旷野绿"]
        },

        {
            name:"Redmi12C",
            price:699,
            version:["4G+64G","4G+128G","6G+128G"],
            color:["暗影黑","深海蓝","薄荷绿","熏衣紫"]
        }

    ]
    console.log(arr[0]);
    console.log(arr[1]);
</script>

案例7-把对象作为函数的参数

    <script>


        function fun1(param){
            console.log(param);
        }

        let phone = {
            name:"Xiaomi13",
            price:4599,
            version:["12G+256G","8G+128G","8G+256G","12G+512G"],
            color:["黑色","白色","远山蓝","旷野绿"]
        }

        //把对象传递到函数的内部
        fun1(phone)
    </script>

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

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

相关文章

俄罗斯电商平台ozon的崛起,卖家可以使用测评补单方式打造爆款吗?

OZON俗称俄罗斯亚马逊&#xff0c;1998年成立&#xff0c;是俄罗斯唯一的多品类综合B2C电商平台&#xff0c;也是目前欧洲第四大电商市场。 作为俄罗斯互联网公司五强的OZON平台&#xff0c;拥有庞大的消费者群体&#xff0c;从2018年仅为480万人&#xff0c;到2021年就增长到…

【C++进阶】Makefile基础(一)

文章目录1. 环境2. 规则3. 原理4. 伪目标Makefile 其实只是一个指示 make 程序&#xff08;后面简称 make 或有时称之为 make 命令&#xff09;如何为我们工作的命令文件&#xff0c;我们说 Makefile 其实是在说 make&#xff0c;这一点要有很清晰的认识。而对于我们的项目来说…

21-CSS

目录 1.CSS是什么&#xff1f; 2.CSS基本语法 3.CSS类型 3.1.行内样式&#xff08;适用范围最小&#xff09; 3.2.内部样式&#xff08;适用范围适中&#xff09; 3.3.外部样式&#xff08;适用范围最大&#xff09; PS&#xff1a;关于缓存 3.4.多种样式优先级 4.代码…

浅析Linux Socket套接字编程中的 5 个隐患

隐患 1&#xff0e;忽略返回状态 第一个隐患很明显&#xff0c;但它是开发新手最容易犯的一个错误。如果您忽略函数的返回状态&#xff0c;当它们失败或部分成功的时候&#xff0c;您也许会迷失。反过来&#xff0c;这可能传播错误&#xff0c;使定位问题的源头变得困难。 捕…

XTDrone PX4 仿真平台|Ubuntu20.04 环境搭建失败记录

XTDrone PX4 仿真平台|Ubuntu20.04 环境搭建失败记录仿真环境搭建依赖安装ROS安装Gazebo安装MAVROS安装PX4配置仿真环境搭建 依赖安装 在使用apt安装的过程中&#xff08;包括之后ROS的安装&#xff09;&#xff0c;如果出现难以解决的依赖问题&#xff0c;可以使用aptitude …

Revit净高分析的三种方法

关于净高分析&#xff0c;就是在revit绘制模型到一定程度后&#xff0c;需要对构件的空间位置进行分析&#xff0c;如结构层高、管线净高、地下室是否满足人员车辆进出、地上部分是否满足正常的人员设备活动空间、净高是否满足设备进场安装等&#xff0c;它可以让我们提前发现不…

Codepipeline 跨账号访问 Codecommit

背景 大型企业中代码仓库通常存放在各部门开发账户中&#xff0c;而流水线则位于独立 DevOps 账户中。 本文我们将介绍如何创建跨账号访问 Codecommit 代码仓库的 Codepipeline 流水线&#xff0c;即 CodePipeline 调用另一个账号中的 Codecommit 代码仓库。 亚马逊云科技开发…

【Python_Scrapy学习笔记(十二)】基于Scrapy框架实现POST请求爬虫

基于Scrapy框架实现POST请求爬虫 前言 本文中介绍 如何基于 Scrapy 框架实现 POST 请求爬虫&#xff0c;并以抓取指定城市的 KFC 门店信息为例进行展示 正文 1、Scrapy框架处理POST请求方法 Scrapy框架 提供了 FormRequest() 方法来发送 POST 请求&#xff1b; FormReques…

阿里云ECS大测评【免费领阿里云套餐~】

送福利&#xff01;阿里云热门产品免费领&#xff08;含ECS&#xff09;&#xff0c;点击进入&#xff1a;https://click.aliyun.com/m/1000370359/ 本篇博客参与阿里云 ECS实例测评&#xff0c;这里采用阿里的C5.large计算型实例 本次对云服务器ECS产品能力的体验和建议&…

【2023最新】超详细图文保姆级教程:App开发新手入门(4)

之前章节我们已经完成了一个应用项目的导入、代码更新和代码提交和应用打包编译&#xff0c;本章继续讲述一下&#xff0c;如何在开发过程中进行代码的同步联机调试。 7 代码真机调试 7.1 纯静态CSS页面样式查看 代码调试有多种方式&#xff0c;如果是查看纯粹的静态样式&am…

价值迭代求解马尔可夫决策过程

Value Iteration Algorithm 其算法思想是: 在每一个状态s下&#xff0c; 之迭代算法流程如下&#xff1a; 初始化状态价值state value&#xff0c;即对每个状态的价值都赋一个初始值&#xff0c;一般是0 计算每一个状态-动作对的 动作价值函数&#xff0c;通常通过创建一个二维…

项目管理(PMP)考试:易混淆知识点汇总

请点击↑关注、收藏&#xff0c;本博客免费为你获取精彩知识分享&#xff01;有惊喜哟&#xff01;&#xff01; PMP考试中经常出现&#xff0c;但容易混淆的一些内容&#xff0c;包含15个会议、40个分析、6个矩阵、5个清单、5个审计、5个报告、4个分解结构、4个评估、3个日志…

谷歌人机验证Google reCAPTCHA

reCAPTCHA是Google公司推出的一项验证服务&#xff0c;使用十分方便快捷&#xff0c;在国外许多网站上均有使用。它与许多其他的人机验证方式不同&#xff0c;它极少需要用户进行各种识图验证。 它的使用方式如下如所示&#xff0c;只需勾选复选框即可通过人机验证。 虽然简单…

Python项目之中国数据可视化

文章目录关键词一、做什么二、怎么做1、获取数据&&处理数据2、数据库设计&&存储数据3、开发后端接口4、前端页面编写三、效果展示四、总结关键词 PythonDjangoPython网络爬虫echarts可视化阅读者&#xff08;Python基础、Django基础、H5基础&#xff09; 一、…

Linux学习笔记——UDP协议

文章目录UDP协议端格式UDP的特点面向数据报UDP的缓冲区基于UDP的应用层协议UDP使用注意事项16位的UDP校验和的校验原理UDP协议端格式 16位源端口号&#xff1a;数据从哪一个端口发出来的&#xff0c;也就是数据从哪一个进程发送出来的。在编写应用层代码的时候&#xff0c;用ui…

Git安装使用教程

Git - Downloadshttps://git-scm.com/downloads 安装 Git。可以在 Git 官网上下载安装包并按照提示进行安装。 GitHub或Gitee官网上注册一个账号&#xff0c;注册好后&#xff0c;桌面右键选择Git Bash&#xff0c;进行账号配置&#xff0c;命令如下&#xff1a; # 配置用户名…

spark第八章:Pyspark

系列文章目录 spark第一章&#xff1a;环境安装 spark第二章&#xff1a;sparkcore实例 spark第三章&#xff1a;工程化代码 spark第四章&#xff1a;SparkSQL基本操作 spark第五章&#xff1a;SparkSQL实例 spark第六章&#xff1a;SparkStreaming基本操作 spark第七章&#…

带隙基准基本原理

目录 负温度系数电压 正温度系数电压 带隙基准 小结 如何产生一个不受温度变化&#xff0c;保持恒定的电压基准呢&#xff1f; 我们假设&#xff0c;如果将两个具有相反温度系数&#xff08;TC&#xff09;的量以适当的权重相加&#xff0c;那么结果就会成为零温度系数&am…

MIT6.824 lab2C2D实验总结

2C 就是持久化一些变量&#xff0c;日志&#xff0c;任期&#xff0c;投票给谁&#xff0c;2D(lastincludeterm, lastincludeindex, snapshot)。同时最难受的是Figure8Unreliable这个测试点&#xff0c;总是几百次出现一两个错误。最后发现是对论文一句话的歧义。这里讲解一下…

Linux(DHCP原理与配置)

文章目录一 、什么是DHCP1.1DHCP定义1.2DHCP好处1.3DHCP的分配方式二 、DHCP 的工作过程三 、DHCP中的设置3.1 DHCP参数3.2 相关操作步骤一 、什么是DHCP 1.1DHCP定义 DHCP&#xff08;动态主机配置协议&#xff09;是一个局域网的网络协议。指的是由服务器控制一段IP地址范围…