【JavaScript】八、对象

news2025/3/31 22:48:59

文章目录

  • 1、对象的声明
  • 2、对象的使用
  • 3、对象中的方法
  • 4、遍历对象
  • 5、内置对象Math

1、对象的声明

  • 一种数据类型,使用typeof查看类型,结果是object
  • 可以详细的描述描述某个事物

在这里插入图片描述

声明语法:
在这里插入图片描述

// 多用花括号形式声明
// 比如声明一个person对象
let person = {}

JS对象 = 属性 + 方法(类似Java中,类 = 属性 + 方法)

在这里插入图片描述

  • 属性就是依附在对象上的变量(对象外面的是变量,对象内的是属性),是一对对无序的键值对
  • 多个属性之间用逗号隔开
  • 属性名可以使用双引号或者单引号,但一般省略不写,除非属性名有特殊字符,如空格、中横线-
let product = {
	goods: '小米',
	uname: '小米su7',
	num: '100012816024',
	weight: '0.55kg',
	address: '中国大陆'
}

2、对象的使用

在这里插入图片描述

  • 查:对象名.属性 或者 对象['属性名']
  • 改:对象名.属性 = 新值
  • 增:对象名.新属性 = 新值
  • 删:delete 对象名.属性
<body>
  <script>
    let product = {
      goods: '小米',
      uname: '小米su7',
      num: '100012816024',
      weight: '300kg',
      address: '中国大陆'
    }
    // 查
    console.log(product.uname)
    // 改
    product.uname = '小米su7-海洋蓝'
    console.log(product.uname)
    // 增
    product.consumer = '顾客1'
    console.log(product.consumer)
    // 删
    delete product.weight
    console.log(product)
    product
  </script>
</body>

改一下,对象属性名改成改中横线的,属性名加引号,但此时访问,中横线会被当成是减号,unmade当成一个变量,从而报错:uname is not defined

在这里插入图片描述
此时,可用另一种查询语法:对象[‘属性名’]

console.log(product['goods-uname'])

3、对象中的方法

表示对象的行为或者动作,在JS中:

  • 方法是由方法名和函数两部分构成,它们之间使用 : 分隔
  • 方法是依附在对象中的函数
  • 方法名可以使用双引号或者单引号,但一般省略不写,除非属性名有特殊字符,如空格、中横线-

在这里插入图片描述

在对象中声明方法以后,通过对象名.方法名来调用(之前的document.write(‘请输入密码’))

在这里插入图片描述

<body>
  <script>
    let person = {
      // 属性
      uname: '张三',

      // 方法
      calc: function (num1 = 0, num2 = 0) {
        console.log(num1 + num2)
      },

      // 第二个方法
      sing: function () {
        console.log('sing a song')
      }
    }

    // 方法调用
    person.calc(1, 3)
  </script>
</body>

4、遍历对象

直接用普通for循环的话,对象和数组不同,没有length属性,循环次数确定不了 ==> for in 循环

在这里插入图片描述

  • for in语法主要用来遍历对象
  • for in语法中的 k 是一个变量, 在循环的过程中依次代表对象的属性名
  • k 是获得对象的属性名, 对象名[k] 是获得属性值,且必须用[ ]的语法来解析,不能用对象名.属性名,因为k是属性名,是带有引号的,你用对象名.属性名,其实是person.'uname',并不是person.uname,所以必然得到undefined
<body>
  <script>
    let product = {
      goods: '小米',
      "goods-uname": '小米su7',
      num: '100012816024',
      weight: '300kg',
      address: '中国大陆'
    }
    // 遍历
    for (let key in product) {
      console.log(`${key}: ${product[key]}`)
    }
  </script>
</body>

在这里插入图片描述

5、内置对象Math

即JS内部提供的对象,包含各种属性和方法给开发者调用,如document.write()、console.log(),Math就是JS提供的一个数学对象,主要方法:

  • random:生成0-1之间的随机数(包含0不包括1)
  • ceil:向上取整
  • floor:向下取整
  • max:找最大数
  • min:找最小数
  • pow:幂运算
  • abs:绝对值
<body>
  <script>
    // 内置对象Math的属性
    // PI
    console.log(Math.PI)          // 3.141592653589793

    // 内置对象Math的方法

    // 向上取整
    console.log(Math.ceil(1.1))   // 2
    // 向下取整
    console.log(Math.floor(1.1))  // 1
    // 四舍五入
    console.log(Math.round(1.5))  // 2
    // 最值
    console.log(Math.max(1, 2, 3, 4, 5))  //5
    console.log(Math.min(1, 2, 3, 4, 5))  //1
    // 绝对值
    console.log(Math.abs(-1))   // 1
    // 次幂
    console.log(Math.pow(2, 3)) // 2的3次方
  </script>
</body>

Math.random() 随机数函数, 返回一个0 - 1之间,并且包括0不包括1的随机小数 [0, 1),左闭右开

// 生成0-10的随机整数
Math.floor(Math.random() * (10 + 1))
// 生成5-10的随机整数
Math.floor(Math.random() * (5 + 1)) + 5

生成N-M之间的随机数:Math.floor(Math.random() * (M - N + 1)) + N

<body>
  <script>
    function getRandon(M, N) {
      return Math.floor(Math.random() * (M - N + 1)) + N
    }
    console.log(getRandon(3, 9))
  </script>
</body>

抽取数组中的随机一个元素:

<body>
  <script>
    function getRandonElement(arr = []) {
      let random = Math.floor(Math.random() * arr.length)
      return arr[random]
    }
    console.log(getRandonElement([3, 9, 4, 6, 7]))
  </script>
</body>

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

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

相关文章

Processor System Reset IP 核 v5.0(vivado)

这个IP的作用&#xff0c;我的理解是&#xff0c;比普通按键复位更加高效灵活&#xff0c;可以配置多个复位输出&#xff0c;可以配置复位周期。 1、输入信号&#xff1a; 重要的信号有时钟clk信号&#xff0c;一般连接到系统时钟&#xff1b;输入复位信号&#xff0c;一般是外…

linux0.11内核源码修仙传第十一章——硬盘初始化

&#x1f680; 前言 本文是初始化最后一部分了&#xff0c;对硬盘的初始化&#xff0c;对应于书中的第20回。希望各位给个三连&#xff0c;拜托啦&#xff0c;这对我真的很重要&#xff01;&#xff01;&#xff01; 目录 &#x1f680; 前言&#x1f3c6;块设备管理&#x1f3…

包络解调在故障诊断中的应用-广义检波解调案例

前言 前面我们曾介绍过广义检波解调的原理&#xff0c;那么今天就将学过的知识点真正用在故障诊断上&#xff0c;由于工厂数据集不能轻易获取&#xff0c;因此通过实验室仿真数据集来介绍整个诊断流程。 数据集 加拿大渥太华是故障诊断领域蛮出名的一个数据集&#xff0c;其…

喜报|迪捷软件入选工信部“2024年信息技术应用创新解决方案”

为进一步深化行业信息技术应用创新&#xff0c;健全信息技术应用创新产业生态&#xff0c;加快新技术新产品应用推广&#xff0c;强化应用牵引和需求导向&#xff0c;加强区域联动和资源整合&#xff0c;工业和信息化部网络安全产业发展中心&#xff08;工业和信息化部信息中心…

2.Python 计算机二级题库:选择题答案解析

一 对 题目1 题目2 题目3 补充&#xff1a;在 Python 中&#xff0c;数字类型的复数类型是 complex。 题目4 题目5 题目6 题目7 题目8 题目9 题目10 题目11 题目12 题目13 题目14 题目15 题目16 题目17 题目18 题目19 题目20 题目21 题目22 题目23 题目24 题目25 题目26 题目27…

使用Selenium和lxml库搜房网爬取某地区房屋信息(python、pycharm爬虫)

一、地址&#xff1a; url "https://zb.newhouse.fang.com/house/s/b91" # 第一页的 URL 但是这个爬虫我不知道为啥总是翻不了页数&#xff0c;请帮忙修改一下~ 二、用到的知识点以及代码详解&#xff1a; 这段代码是一个使用Selenium和lxml库实现的网页爬虫&a…

大模型训练过程中KVCache与MLA

基础内容 在Transformer模型中&#xff0c;每个token有qkv三个属性&#xff0c;分别通过神经网络变换得到。1 根据Transformer中注意力公式&#xff0c;每个token的q需要和之前所有的k计算注意力&#xff0c;然后经过Softmax函数后乘以之前所有token的V&#xff0c;得到最终的…

材质及制作笔记

基本流程&#xff1a; 建中模——zb雕刻高模——maya拓扑低模——拆uv——sp烘焙贴图——sp绘制材质——渲染 1 材质贴图&#xff1a; diffuse/albedo/basecolor&#xff1a;漫反射 reflection/specular&#xff1a;反射 metalness&#xff1a;金属度 glossiness&#xf…

语音机器人与智能体结合

自从春节期间deepseek的发布&#xff0c;大家对语音机器人接入大模型格外的关注。最近又收到一个需求&#xff0c;是语音机器人与智能体的结合。 什么是智能体&#xff1f; 智能体&#xff08;Agent&#xff09;是指能够感知环境并采取行动以实现目标的实体。根据其复杂程度&am…

Axios企业级封装实战:从拦截器到安全策略!!!

&#x1f680; Axios企业级封装实战&#xff1a;从拦截器到安全策略 &#x1f527; 核心代码解析 // 创建Axios实例 const service axios.create({baseURL: api, // &#x1f310; 全局API前缀timeout: 0, // ⏳ 永不超时&#xff08;慎用&#xff01;&#xff09;withCrede…

Zerotier虚拟局域网在树莓派的应用和Syncthing配合Zerotier实现端到端文件同步

一、Zerotier的部署 1、官网注册账号 https://my.zerotier.com/i 2、选择linux系统&#xff0c;执行安装Zerotier curl -s https://install.zerotier.com | sudo bash3、将树莓派网络加入Zerotier zerotier-cli join DB62228FEDF6CE55DB62228FEDF6CE55 为你的Zerotier IP 需…

51c嵌入式~三极管~合集1

我自己的原文哦~ https://blog.51cto.com/whaosoft/12208603 一、PNP与NPN两种三极管使用方法 分享这篇文章总结下关于NPN和PNP两种型号三极管的使用和连接方法。 在单片机应用电路中三极管主要的作用就是开关作用。 PNP与NPN两种三极管使用方法 上图中&#xff0c;横向左…

SQL中累计求和与滑动求和函数sum() over()的用法

[TOC](SQL中累计求和与滑动求和函数sum() over()的用法) 一、窗口函数功能简介 sum(c) over(partition by a order by b) 按照一定规则汇总c的值&#xff0c;具体规则为以a分组&#xff0c;每组内按照b进行排序&#xff0c;汇总第一行至当前行的c的加和值。 sum()&#xff1a…

【Sql Server】在SQL Server中生成雪花ID(Snowflake ID)

大家好&#xff0c;我是全栈小5&#xff0c;欢迎来到《小5讲堂》。 这是《Sql Server》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解。 温馨提示&#xff1a;博主能力有限&#xff0c;理解水平有限&#xff0c;若有不对之处望指正&#xff01; 目录 前言认识雪花ID…

FPGA——分秒计数器设计(DE2-115开发板)

一、项目创建 1.创建工程 点击File->New Project Wizard...或者直接在页面处点击 在第一行选择文件存放地点&#xff0c;第二行为项目名称&#xff0c;第三行为顶级设计实体名称 &#xff08;下面的步骤可以暂时不做直接点Finish&#xff0c;因为是先写代码先把它跑出来暂…

雅思练习总结(九)

雅思练习总结&#xff08;九&#xff09; 本文章是雅思练习总结&#xff08;九&#xff09;&#xff0c;总结了文章《BAKELITE》&#xff0c;内容包括原文精翻&#xff0c;文章脉络总结&#xff0c;单词扩展学习3个部分 1 文章原文及翻译 BAKELITE 翻译&#xff1a;贝克莱特…

windows USB 了解

GUID GUID 是一个 128 位的数字&#xff0c;在全球范围内是独一无二的&#xff0c;常被用于标识软件组件、设备接口等&#xff0c;以保证在不同系统和环境中能唯一识别特定对象。 DEFINE_GUID(GUID_DEVINTERFACE_USCUSTOMKEYS, 0x12345678, 0x1234, 0x5678, 0x12, 0x12, 0x23…

光谱相机的光谱信息获取

光谱信息的获取方式主要依赖于不同分光技术和成像方法&#xff0c;将入射光分解为不同波长并记录其强度。以下是常见的光谱信息获取技术分类及原理&#xff1a; ‌1. 分光技术&#xff08;物理分解波长&#xff09;‌ ‌(1) 滤光片法‌ ‌原理‌&#xff1a;使用固定或可调滤…

免去繁琐的手动埋点,Gin 框架可观测性最佳实践

作者&#xff1a;牧思 背景 在云原生时代的今天&#xff0c;Golang 编程语言越来越成为开发者们的首选&#xff0c;而对于 Golang 开发者来说&#xff0c;最著名的 Golang Web 框架莫过于 Gin [ 1] 框架了&#xff0c;Gin 框架作为 Golang 编程语言官方的推荐框架 [ 2] &…

构建大语言模型应用:简介(第一部分)

本专栏聚焦大语言模型&#xff08;LLM&#xff09;相关内容的解析&#xff0c;通过检索增强生成&#xff08;RAG&#xff09;应用的视角来进行。 本系列文章 简介&#xff08;本文&#xff09;数据准备句子转换器向量数据库搜索与检索大语言模型开源检索增强生成评估大语言模…