js基础之对象

news2024/12/27 7:00:55

目录

一、对象定义

二、声明对象:object

三、对象的操作 

四、遍历对象 

五、渲染表格案例 

六、Math内置对象 

 七、随机函数

八、日期对象

封装时间函数

封装倒计时函数

九、案例

随机⽣成颜⾊的案例

随机点名


一、对象定义

对象     : 对象可以存储一个人完整的信息,对象里有属性和方法,是以键值对组成的

js对象为了描述客观事物,如一本书,一个人,一只猫....

语法:

{ 属性名:值,

属性名:值,

属性名:值 }    若干个键(key)值(value)对
    

二、声明对象:object

1、字面量

访问对象的值,对象的变量名.属性名

访问对象的值,  对象的变量名[ ' 属性名']      如果不加引号就会朝内存中找这个变量  

  给对象添加属性  对象名.属性名=属性值

修改对象的属性值  对象名.属性名=属性值

对象名['属性名']添加属性

2 new关键字创建

var obj = new Object(){

            name: '属性值'

        }

        // console.log(obj)

3、构造函数创建对象 函数名首字母大写

        function Person(name) {

            this.name = name

        }

        var person = new Person('对象')

        // console.log(person)

   const students={
            name:'张三',
            id:1001,
            sex:'男',
            hobby:function(){
                console.log('我喜欢唱歌')
            }

        }

三、对象的操作 

对象操作------增删改查
    
    对象名都是字符串,属性名没有特殊符号的时候,字符串引号可以省略

    查-------对象名.属性名 或 对象名['属性名']   (不加引号表示变量)

    // 对象名都是字符串,属性名没有特殊符号的时候,字符串引号可以省略
      const peiqi = {
        uname: '佩奇',
        age: 20,
        sex: '女',
        'a-b': 20,
      }
      console.log(peiqi['a-b'])


    
    当里面的属性用变量存起来时用[ ]
    总结:属性名明确的话,两种形式都可以,属性名存在变量里或者属性名含有特殊符号的,只能用中括号

    

    增-------对象名.属性名=属性值

   // 增
      peiqi.color = 'pink'
      peiqi.sing = function () {
        console.log('唱歌')
      }
      console.log(peiqi)

    改--------对象名.属性名=属性值

  // 改
      peiqi.age = 4
      console.log(peiqi)

    删---------delete   对象名.属性名

  // 删
      delete peiqi.sex
      console.log(peiqi)

四、遍历对象 

for in 可以遍历对象或数组

const peiqi = {
        uname: '佩奇',
        age: 20,
        sex: '女',
        'a-b': 20,
      }

      // for in 可以遍历对象或数组
      for (let key in peiqi) {
        console.log(key) //  获取的是属性名
        console.log(peiqi[key]) //;
      }

for in 遍历数组 

  const arr = [1, 2, 3]
      for (let k in arr) {
        console.log(k) // 拿到的是索引 字符串
        console.log(arr[k])
      }

五、渲染表格案例 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        table{
            width: 500px;
            margin: 100px auto;
            border-collapse: collapse;
            /* background: linear-gradient(red, yellow); */
        }
        table,th,td{
            border: 1px solid #757373;
            text-align: center;
            height: 40px;

        }
        th{
            background-color: #a8a6a6;
        }
        /* tr:hover{
            background-color: #a8a6a6;

        } */
        tr:hover{
            background-color: antiquewhite;

        }
    </style>
</head>
<body>
   
    <script>
            const students = [
        {
          id: 10001,
          name: 'lily',
          age: 20,
          score: 90,
        },
        {
          id: 10002,
          name: 'lucy',
          age: 21,
          score: 80,
        },
        {
          id: 10003,
          name: 'tom',
          age: 22,
          score: 85,
        },
      ]
      let str=''
      for(let i=0;i<students.length;i++){
        str+=`
        <tr>
        <td>${students[i].id}</td>
        <td>${students[i].name}</td>
        <td>${students[i].age}</td>
        <td>${students[i].score}</td>
      </tr>
        `

      }
      document.write(`
      <table>
        <thead>
            <th>学号</th>
            <th>姓名</th>
            <th>年龄</th>
            <th>成绩</th>
   
        </thead>
        <tbody>
    ${str}
        </tbody>
    </table>
      `)
    </script>
</body>
</html>

六、Math内置对象 

Math内置对象------提供一系列与数学运算相关的属性或方法

Math内置对象:

PI           圆周率

floor      向下取整

ceil        向上取整

round    四舍五入

abs        取绝对值

pow          求某个数的几次方
sqrt           求平方根

max       求一组数据中的最大值

min        求一组数据中的最小值

random  是 [ 0-1 )之间的随机的小数

 console.log(typeof Math) // object 对象类型
      console.log(Math.PI) // 3.1415926
      // 常用方法
      console.log(Math.abs(-5)) // 5 绝对值
      console.log(Math.ceil(10.1)) // 11 向上取整
  console.log(Math.floor(10.9)) // 向下取整 10
 console.log(Math.max(10, 3, 4, -1)) // 10
      console.log(Math.min(10, 3, 4, -1)) // -1
      console.log(Math.pow(2, 5)) // 求2的5次方
      console.log(Math.sqrt(16))
      console.log(Math.round(10.5)) // 11 四舍五入

 七、随机函数

产生n-m之间的随机整数

function getRandom(n, m) {
            if (n > m) {
                let temp = n
                n = m
                m = temp
            }
            //   return Math.round(Math.random()*(m-n))+n
            return Math.floor(Math.random() * (m - n + 1)) + n

        }

八、日期对象

日期对象:

console.log(data.getTime())    //从1970年1月1日到此时此刻的毫秒数

console.log(date.valueOf())     //拿到此时此刻的毫秒数

var data= +new Date()         //拿到的也是此时此刻的毫秒数

var data = Date.now()           //拿到的也是此时此刻的毫秒    

var data = new Date('2023/10/1')         //拿到指定日期的毫秒数

格式化时间:

var date = new Date()      //获取中国标准时间

date.getFullYear()            // 获取年份

date.getMonth()              //获取月份(获取的月份比实际的月份小一月,要加1)

date.getDate()                //获取日期

date.getHours()            // 获取小时

date.getMinutes            //获取分钟

date.getSeconds()          //获取秒数

    date.getDay()     //获取一个星期中的星期几(1 - 6 代表星期一到六, 0 代表星期日)

封装时间函数

 function getTime() {
            var date = new Date()
            var y = date.getFullYear() //获取当前年份
            var m = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1 //获取当前月份
            var d = date.getDate() < 10 ? '0' + date.getDate() : date.getDate() //获取当前日期
            var h = date.getHours() < 10 ? '0' + date.getHours() : date.getHours()//获取当前小时
            var mm = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()//获取当前分钟
            var s = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds()//获取当前秒数
            return y + '-' + m + '-' + d + ' ' + h + ':' + mm + ':' + s
        }

        console.log(getTime()) 

封装倒计时函数

    function getTime(date) {
            let nowTime = new Date().getTime()//获取当前时间总毫秒数
            let futTime = new Date(date).getTime()//获取未来时间总毫秒数
            let time = (futTime - nowTime) / 1000//未来时间与当前时间差转成秒数
            //倒计时的秒数时间
            var d = parseInt(time / 60 / 60 / 24)//获取倒计时天数
            d = d < 10 ? '0' + d : d
            let h = parseInt(time / 60 / 60 % 24)//获取倒计时小时
            h = h < 10 ? '0' + h : h
            let m = parseInt(time / 60 % 60)//获取倒计时分钟
            m = m < 10 ? '0' + m : m
            let s = parseInt(time % 60)//秒
            s = s < 10 ? '0' + s : s
            return `${d}天 ${h}时 ${m}分 ${s}秒`

        }
        console.log(getTime('2023-11-8 20:00:00'))

九、案例

随机⽣成颜⾊的案例

    function Random(flag) {

            if (flag === true || flag === undefined) {
                const arr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f']

                let str = '#'
                for (let i = 1; i <= 6; i++) {
                    let random = Math.floor(Math.random() * arr.length)
                    str += arr[random]

                }
                return str
            } else {
                let r = Math.floor(Math.random() * 256)
                let g = Math.floor(Math.random() * 256)
                let b = Math.floor(Math.random() * 256)
                return `rgb(${r},${g},${b})`
            }

        }

        console.log(Random(false))
        console.log(Random(true))
        console.log(Random())

随机点名

  const arr=['苹果','香蕉','草莓','橘子']
        function getRandom(n,m){
            if(n>m){
                let temp=n
                n=m
                m=temp

            }
            return Math.floor(Math.random()*(m-n+1))+n
        }
        console.log(arr[getRandom(0,arr.length-1)])

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

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

相关文章

轻量级 SSO 方略:基于 OIDC 规范(二)

上一篇文章介绍了 SSO 相关的基础数据&#xff0c;这样有了 ClientId 和密钥后&#xff0c;我们就要准备客户端这边的代码。客户端当前指的便是一个网站&#xff08;也就是 RP&#xff09;&#xff0c;这个网站要求有会员功能&#xff0c;典型地网站导航上通常会有“注册”或“…

解释tqdm模块显示进度条:

1. 在Python中&#xff0c;当你使用tqdm模块&#xff08;一个快速、可扩展的Python进度条库&#xff09;时&#xff0c;你可能会看到类似的输出&#xff1a;[6:20:38<6:34:14, 31.25s/it]。 这个输出提供了关于循环进度的详细信息&#xff1a; 6:20:38: 这是已经过去的时…

基于猫群算法优化概率神经网络PNN的分类预测 - 附代码

基于猫群算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于猫群算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于猫群优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&#xff1a;针对PNN神经网络的光滑…

深度学习之基于Pytorch服装图像分类识别系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介系统组成1. 数据集准备2. 数据预处理3. 模型构建4. 模型训练5. 模型评估 PyTorch的优势 二、功能三、系统四. 总结 一项目简介 深度学习在计算机视觉领域的…

在 uniapp 中 一键转换单位 (px 转 rpx)

在 uniapp 中 一键转换单位 px 转 rpx Uni-app 官方转换位置利用【px2rpx】插件Ctrl S一键全部转换下载插件修改插件 Uni-app 官方转换位置 首先在App.vue中输入这个&#xff1a; uni.getSystemInfo({success(res) {console.log("屏幕宽度", res.screenWidth) //屏…

Obsidian同步技巧

Obsidian介绍 Obsidian支持Markdown语法&#xff0c;所见即所得。 软件支持多仓库功能&#xff0c;支持笔记文件夹和分层文件夹&#xff0c;等功能。 值得一提的是&#xff0c;软件的笔记同步功能需要付费。 同步技巧 官方同步方法 若资金充足&#xff0c;则可在Obsidian官网…

服务器常见问题排查(一)—cpu占用高、上下文频繁切换、频繁GC

一般而言cpu异常往往还是比较好定位的。原因包括业务逻辑问题(死循环)、频繁gc以及上下文切换过多。而最常见的往往是业务逻辑(或者框架逻辑)导致的&#xff0c;可以使用jstack来分析对应的堆栈情况。 使用jstack排查占用率问题 当使用jstack排查占用率问题时&#xff0c;可以…

5+干湿结合的佳作,可另外添加分析升级

今天给同学们分享一篇生信文章“PCTAIRE Protein Kinase 1 (PCTK1) Suppresses Proliferation, Stemness,and Chemoresistance in Colorectal Cancer through the BMPR1B-Smad1/5/8 Signaling Pathway”&#xff0c;这篇文章发表在Int J Mol Sci期刊上&#xff0c;影响因子为5.…

Hafnium之工程目录结构介绍

安全之安全(security)博客目录导读 Hafnium存储库包含Hafnium源代码以及与集成测试和单元测试相关的测试代码。为了帮助集成测试,存储库还包含一个用于分区的小型客户端库,以及构建和运行测试所需的预构建工具二进制文件。构建系统由gn支持。 每个平台都有一个单独的…

【Git】第一篇:Git安装(centos)

git查看安装版本 以我自己的centos7.6为例&#xff0c;我们可以输入以下指令查看自己是否安装了git. git --version安装了的话就会显示自己安装的版本。 git 安装 安装很简单&#xff0c;一条命令即可 sudo yum install git -ygit 卸载 sudo yum remove git -y

Kotlin之控制语句和表达式

原文链接 Kotlin Controls and Expressions 有结果返回的是表达式&#xff0c;没有返回的称之为语句&#xff0c;语句最大的问题是它没有返回值&#xff0c;那么想要保存结果就必然会产生副作用&#xff0c;比如改变变量。很多时候这是不够方便的&#xff0c;并且在多线程条件…

『MySQL快速上手』-⑦-内置函数

文章目录 1.日期函数1.1 获得年月日1.2 获得时分秒1.3 获得时间戳1.4 在日期的基础上加日期1.5 在日期的基础上减去时间1.6 计算两个日期之间相差多少天案例1案例22.字符串函数案例3.数学函数4.其他函数1.日期函数 1.1 获得年月日

CLK_CFG_AD9516时钟芯片(配置代码使用说明)

目录 1 概述2 例程功能3 例程端口4 数据时序5 注意事项6 调用例程7附录&#xff08;代码以及寄存器&#xff09; 1 概述 本文用于讲解CLK_CFG_AD9516例程配置代码的使用说明&#xff0c;方便使用者快速上手。 2 例程功能 本例程 是采用verilog hdl编写&#xff0c;实现AD951…

Netty Review - 快速上手篇

文章目录 基础概念官网Whats NettyWhy NettyAbout Netty Author & LeaderWhat can Netty doNetty开发流程Flow HL View客户端开发Handler客户端启动类 服务端开发Handler服务器端启动类 运行示例 基础概念 BIO、NIO和AIO这三个概念分别对应三种通讯模型&#xff1a;阻塞、…

本地化小程序运营 同城小程序开发

时空的限制让本地化的线上平台成为一种追求&#xff0c;58及某团正式深挖人们城镇化、本地化的信息和商业需求而崛起的平台&#xff0c;将二者结合成本地化小程序&#xff0c;显然有着巨大的市场机会。本地化小程序运营可以结合本地化生活需求的一些信息&#xff0c;以及激发商…

Nginx-基础-基础配置(Server,Location语法,匹配优先级,rewrite)

请求定位(Server模块) nginx有两层指令来匹配请求 URL &#xff1a; 第一个层次是 server 指令&#xff0c;它通过域名、ip和端口来做第一层级匹配&#xff0c;当找到匹配的 server 后就进入此 server 的 location 匹配。第二个层次是location指令&#xff0c;它通过请求uri来…

同城小程序怎么运作 本地化生活小程序开发

同城小程序可以采取公域加私域的运营方式&#xff0c;进行运作。 在社交媒体平台上分享有趣的本地生活内容、社区动态&#xff0c;可以通过举办本地活动、合作推广等方式进行线下宣传&#xff0c;可以通过抖音本地化生活服务进行线下门店推广。 本地化生活小程序开发需要结合自…

【数据结构】堆(Heap):堆的实现、堆排序

目录 堆的概念及结构 ​编辑 堆的实现 实现堆的接口&#xff1a; 堆的初始化&#xff1a; 堆的打印&#xff1a; 堆的销毁&#xff1a; 获取最顶的根数据&#xff1a; 交换&#xff1a; 堆的插入&#xff1a;&#xff08;插入最后&#xff09; 向上调整&#xff1a;&#xff0…

解决Chrome无法自动同步书签

前提&#xff1a;&#xff08;要求能正常访问google&#xff09; 准备一个谷歌账号 安装Chrome浏览器 开启集装箱插件&#xff08;或者其他能访问谷歌的工具&#xff09; 步骤&#xff1a;&#xff08;使用集装箱插件/能正常访问谷歌的其他工具&#xff09; 下载安装使用“集…

as启动Internal error. Please refer to https://code.google.com/p/android/issues

打开AndroidStudio时遇到nternal error. Please report to https://code.google.com/p/android/issues 解决方法&#xff1a; 1、在AndroidStudio项目安装目录的/Applications/Android\ Studio.app/Contents/bin/idea.properties 文件中最后一行添加disable.android.first.runt…