js基础之对象

目录

一、对象定义

二、声明对象: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)])

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux下的环境变量【详解】

Linux下的环境变量 一&#xff0c;环境变量的概念1 概述2 环境变量的分类3 常见的环境变量4 查看环境变量4.1 shell变量4.2 查看环境变量 5 添加和删除环境变量5.1 添加环境变量5.2 删除环境变量 6. 通过代码如何获取环境变量6.1 命令行的第三个参数6.2 通过第三方变量environ获…

Android笔记(十二):结合Compose实现Handler机制处理多线程的通信

在Android应用中常常结合多线程处理多个任务。不可避免&#xff0c;多个线程之间需要数据通信。Hanlder消息处理机制是异步处理的方式之一。通过Handler机制可以实现在不同的线程之间的通信。 一、主线程和工作线程 1.主线程 一个Android的移动应用启动时会单独启动一个进程…

华为认证 | 11月底这门HCIP认证即将发布!

非常荣幸地通知您&#xff0c;华为认证HCIP-Storage V5.5&#xff08;中文版&#xff09;预计将于2023年11月30日正式对外发布。为了帮助您做好学习、培训和考试计划&#xff0c;现进行预发布通知&#xff0c;请您关注。 01 发布概述 基于“平台生态”战略&#xff0c;围绕“云…

理解RNN以及模型搭建代码

RNN结构 这是一张不直观易懂的RNN结构示意图。但也是大家见得最多结构示意图。 RNN模型解释 RNN一文就讲解清楚的博客&#xff0c;看这里&#xff1a;https://zhuanlan.zhihu.com/p/408998328 RNN为什么梯度消失和梯度爆炸&#xff0c;看这里&#xff1a;https://zhuanlan.z…

Windows搭建Web站点:免费内网穿透发布至公网

目录 什么是cpolar&#xff1f; 概述 1. 注册并安装cpolar内网穿透 2. 搭建一个静态Web站点 2.1 下载演示站点 2.2 本地运行演示站点 2.3 本地浏览测试站点是否正常 3. 本地站点发布公网可访问 3.1 登录cpolar web ui管理界面 3.2 启动website隧道 3.3 获取公网URL地…

AI:76-基于机器学习的智能城市交通管理

🚀 本文选自专栏:AI领域专栏 从基础到实践,深入了解算法、案例和最新趋势。无论你是初学者还是经验丰富的数据科学家,通过案例和项目实践,掌握核心概念和实用技能。每篇案例都包含代码实例,详细讲解供大家学习。 📌📌📌在这个漫长的过程,中途遇到了不少问题,但是…

Power Automate-创建和运行

网站&#xff1a;Microsoft Power Automate 根据自己需求选择创建 选择需要的触发方式 点击添加新步骤 可以选择多种微软应用或者自定义应用连接 此处以向SharePoint列表追加项为例&#xff0c;要提前创建好SharePoint列表&#xff0c;并写好表结构 搜索SharePoint&#xff0…

【机器学习】给大家推荐几个资源

我写博客的目的就是让大家了解人工智能背后的数学原理&#xff0c;但人工智能这个话题太大了&#xff0c;背后涉及到的知识非常庞大&#xff0c;仅靠写几篇文章传播力度有限&#xff0c;况且知识传播过程中也容易引入误解&#xff0c;所以授之以鱼不如授之以渔&#xff0c;这里…

NIO 笔记(二)Netty框架专题

【笔记来自&#xff1a;it白马】 Netty框架 前面我们学习了Java为我们提供的NIO框架&#xff0c;提供使用NIO提供的三大组件&#xff0c;我们就可以编写更加高性能的客户端/服务端网络程序了&#xff0c;甚至还可以自行规定一种通信协议进行通信。 NIO框架存在的问题 但是之…

openfeign客户端A调用服务B,服务B抛出异常时,客户端A接收的几种情况

openfeign客户端A调用服务B&#xff0c;服务B抛出异常时&#xff0c;客户端A接收的几种情况 一、openfeign客户端调用远程服务时&#xff0c;远程服务抛出异常后&#xff0c;根据调用方法的返回类型的不同&#xff0c;会有不同的返回结果0 先看非openfeign调用的情况&#xff1…

在vue中如果头像为空时用姓名第一个字当头像

业务场景:当个人资料或者用户头像没有图片时&#xff0c;默认使用户名字中第一个汉字做头像。 效果图&#xff1a; 完整代码&#xff1a; <el-avatarsize"large" style"width: 45px; height: 45px; line-height: 45px; font-size: 24px"v-if"…

海淀区委网信办领导到中睿天下调研

近日&#xff0c;北京市海淀区委宣传部副部长&#xff0c;海淀区委网信办主任黄英、海淀区委网信办副主任陈魁一行到中睿天下北京总部调研&#xff0c;中睿天下副总经理李小琼、联合创始人魏海宇、国防营销中心总经理吕宗辉参加。 海淀区委网信办一行参观了中睿天下展厅&#x…

元核云亮相金博会,智能质检助力金融合规

11月初&#xff0c;第五届中新&#xff08;苏州&#xff09;数字金融应用博览会&#xff5c;2023金融科技大会在苏州国际博览中心举办&#xff0c;围绕金融科技发展热点领域及金融行业信息科技领域重点工作&#xff0c;分享优秀实践经验&#xff0c;探讨数字化转型路径与未来发…

基于IGT-DSER智能网关实现GE的PAC/PLC与罗克韦尔(AB)的PLC之间通讯

工业自动化领域的IGT-DSER智能网关模块支持GE、西门子、三菱、欧姆龙、AB等各种品牌的PLC之间通讯(相关资料下载)&#xff0c;同时也支持PLC与Modbus协议的工业机器人、智能仪表等设备通讯。网关有多个网口、串口&#xff0c;也可选择WIFI无线通讯。无需编程开发&#xff0c;只…

3线硬件SPI+DMA驱动 HX8347 TFT屏

3线硬件SPIDMA驱动 HX8347 TFT屏&#xff0c;实现用DMA清屏。 参考&#xff1a;基于stm32 标准库spi驱动st7789彩屏TFT(使用DMA)-技术天地-深圳市修德电子有限公司 一、源码 HX8347.h #ifndef USER_HX8347_H_ #define USER_HX8347_H_#define SPI_hardware #define SPI_hardw…

基于表面电势的AlGaN/GaN MODFET紧凑模型

标题&#xff1a;A Surface-Potential-Based Compact Model for AlGaN/GaN MODFETs 来源&#xff1a;IEEE TRANSACTIONS ON ELECTRON DEVICES&#xff08;11年&#xff09; 摘要 - 本文首次构建了基于表面势&#xff08;SP&#xff09;的AlGaN/GaN调制掺杂场效应晶体管&#…

说说地址栏输入 URL 敲下回车后发生了什么?

面试官&#xff1a;说说地址栏输入 URL 敲下回车后发生了什么? 一、简单分析 简单的分析&#xff0c;从输入 URL到回车后发生的行为如下&#xff1a; URL解析DNS 查询TCP 连接HTTP 请求响应请求页面渲染 二、详细分析 URL解析 首先判断你输入的是一个合法的 URL 还是一个…

C++初阶(九)内存管理

&#x1f4d8;北尘_&#xff1a;个人主页 &#x1f30e;个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上&#xff0c;不忘来时的初心 文章目录 一、C/C内存分布1、选择题2、填空题3、sizeof 和 strlen 区别&#xff1f;4、总结 二、 C语言…

19.8 Boost Asio 异或加密传输

异或加密是一种对称加密算法&#xff0c;通常用于加密二进制数据。异或操作的本质是对两个二进制数字进行比较&#xff0c;如果它们相同则返回0&#xff0c;如果不同则返回1。异或加密使用一把密钥将明文与密文进行异或运算&#xff0c;从而产生密文。同时&#xff0c;使用相同…

数字马力笔试面试复盘

笔试——10月9日19&#xff1a;00 单选&#xff1a;30题 16.如何获取AJAX 请求的响应状态码? A通过AJAX对象的 statusCode 属性获取 B通过AJAX对象的responseText 属性获取C通过AJAX对象的status 属性获取 D通过AJAX对象的responseCode属性获取 答案&#xff1a;可以通过AJAX…