JavaScript基础 第五天

news2024/11/25 7:02:58

1.什么是对象以及对象的基本使用

2.对象的操作 --增删改查

3.对象的方法

4.数学内置对象

5.简单数据类型和引用数据类型

一.什么是对象以及对象的基本使用

① 对象是什么

  • 可以理解为一种无序的数据集合,数组是有序的数据集合
  • 对象通常用来描述某个事物,或者一个人

② 对象的使用

     1.对象声明语法

let 对象名 = {}

let 对象名 = new Object()

     2.对象由属性和方法组成

let 对象名 = {
    属性名: 属性值,
    方法名:函数
}

      属性:信息或特征

let obj = {
    uname:'pink老师',
    age:18,
    gender:'女'
}
  • 数据描述性的信息称为属性,比如人的姓名,身高,年龄,性别,一般都是名词性的
  •  属性都是成对出现的,包括属性名和属性值,它们之间用英文:隔开
  • 多个属性之间使用英文,分隔
  • 属性就是依附在对象上的变量
  • 属性名可以使用" "或' ', 一般情况下省略,除非名称遇到特殊符号,比如空格或者-   

      方法:功能或行为

   二.对象的操作 --增删改查

① 查询对象:  对象.属性

  • 使用. 获得对象中属性对应的值,称为属性访问
  • 语法:对象名.属性
  • 获得对象里面的属性值
let obj = {
   'name-chen': '小米',
    num: '100000011001',
    weight: '0.5kg',
    address: '中国大陆'
}

console.log(obj.name)

② 修改:对象名.属性 = 新值 (有这个属性就是修改这个属性)

obj.name = '小米10 PLUS'

③ 增:对象名.属性 = 新值(没有的属性就是增加一个新的属性)

 let obj = {
   'name-chen': '小米',
    num: '100000011001',
    weight: '0.5kg',
    address: '中国大陆'
}

obj.color = '粉色'

④ 属性 - 删(了解)  delete 对象名.属性

delete pink.age

⑤ 查询的两种方法

  • 对象.属性名

      console.log(obj.color)

  • 对象名['属性名']:对于多个词语拼接成的属性,点操作就不能用了,需要采取对象['属性'] 的方式

     console.log(obj['num'])      

 三.对象中的方法

① 概念:数据行为性的信息称为方法,比如跑步,唱歌等,一般都是动词性的,本质是函数

let obj = {
  uname: '刘德华',
  song:function(x, y) {
     console.log(x + y);
  }
}
// 方法调用
obj.song(1, 2)
  • 方法是由方法名和函数两部分构成的,它们之间用:分隔
  • 多个属性之间用英文,分隔
  • 方法是依附在对象中的函数
  • 方法名可以使用"" 或' ', 一般情况下省略,除非名称遇到特殊符号如空格,中横线等

② 遍历对象

  • 对象里面是无序的,没有规律,也没有数组那样的下标
  • 使用for  in  语法
  • 一般不用这种方式遍历数组,主要用来遍历对象
  • for in语法中的k是一个变量,在循环的过程中依次代表对象的属性名
  • 由于k是变量,所以必须使用[ ]语法解析
  • k 是对象的属性名,对象名[k]是属性值
let obj = {
  uname : 'pink老师',
  age: 18,
  gender: '男'
}
for (let k in obj) {
   console.log(k)  // 属性名
   console.log(obj[k])
}

四.数学内置对象

① Math对象是JS中的一个数学对象,提供了一系列数学运算的方法

方法含义
random生成0-1之间的随机数
ceil向上取整
floor向下取整
max找最大数
pow幂运算
abs绝对值

 

 

 

 

 

 

console.log(Math.PI)

// 向上取整
console.log(Math.ceil(1.5))

// 向下取整
console.log(Math.floor(1.1))


// 四舍五入:取最接近的整数   特殊情况:负数:-1.5 取 -1
console.log(Math.round(4.68))

// 最大值
console.log(Math.max(1,2,3,4,5))

// 最小值
console.log(Math.min(1,2,3,4,5))

 ② 随机数

  • Math.random() 随机数函数,返回一个0~1之间,并且包括0但不包括1的随机小数 [0, 1)
  • 取0到10之间的随机数: Math.floor(Math.random() * ( 10 + 1))
  • 取0到N之间的随机数: Math.floor(Math.random() * (N + 1))
  • 生成M到N之间的随机数:Math.floor(Math.random() * (M - N + 1)) + N
  • 随机抽取数组中的一个数:Math.floor(Math.random() * arr.length)

五. 简单数据类型和引用数据类型

  • 简单类型:基本数据类型或者值类型,在存储变量的时候存储的是值本身,因此叫值类型

    string number boolean undefined null

  • 复杂类型:引用类型,在存储时变量中存储的仅仅是地址,通过new关键字创建的对象(如 object, Array, Date)
  • 栈:由操作系统自动分配释放存放函数的参数值,局部变量的值,操作方式类似于数据结构中的栈,简单数据类型存放到栈里面
  • 堆:存放复杂类型(对象),一般由程序员分配释放,若程序员不释放,由垃圾回收机制回收,引用数据类型存放到堆里面

 

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

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

相关文章

springboot+mybatis+mybatis-plus对crud项目进行改进

springbootmybatis实现简单的增、删、查、改https://blog.csdn.net/heyl163_/article/details/132197201上一篇文章,已经详细地介绍了怎么通过springboot项目整合mybatis实现简单的数据库表的增删改查功能,是最简单的springboot项目的结构。所以有很多问…

FinClip | 7月做出了一些微不足道的贡献

FinClip 的使命是使您(业务专家和开发人员)能够通过小程序解决关键业务流程挑战,并完成数字化转型的相关操作。不妨让我们看看在本月的产品与市场发布亮点,看看是否有助于您实现目标。 产品方面的相关动向👇&#x1f…

Python中的排序

一、列表排序 举例sort和sorted对列表排序,说明两者的区别。 import relist1 [0, -1, 3, -10, 5, 9] list1.sort(reverseFalse) print(list1.sort在list1基础上修改,无返回值, list1) list2 [0, -1, 3, -10, 5, 9] res sorted(list2, reverseFalse)…

团队管理之PDP大法

PDP 是什么,为什么有些人会谈PDP色变呢?人常常会对自己不了解的东西感到恐惧 一、什么是PDP 团队管理中的PDP可能指"Personal Development Plan"(个人发展计划),它是一种用于帮助团队成员提升个人能力和达成…

leetcode 面试题 02.07. 链表相交

题目:leetcode 面试题 02.07. 链表相交 描述: 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。 图示两个链表在节点 c1 开始相交: 思路&…

ARP请求拦截及响应

一、前言 本文主要是介绍如何对arp请求包进行拦截,并代替系统进行响应。对arp请求进行拦截,需要在驱动中进行,具体代码如下文所示。(本文仅供参考) 二、环境 OS Ubuntu 20.04.6 LTSLinux ubuntu 5.15.0-71-generic三…

Java培训班出来能找到工作吗?有没有想详细了解的呢

参加Java培训班可以提升你的编程技能和就业竞争力,但能否找到工作还取决于多个因素,如个人能力、市场需求、就业竞争等。参加Java培训班可以帮助你获得系统的Java编程知识和实践经验,了解行业最佳实践和流行的技术框架。这有助于你在面试时展…

SpringBoot案例-部门管理-删除

目录 查看页面原型,明确需求 页面原型 需求 阅读接口文档 思路分析 功能接口开发 控制层(Controllre类) 业务层(Service类) 持久层(Mapper类) 接口测试 前后端联调 查看页面原型&a…

Linux进程管理命令

一、进程 程序由一条条指令构成,在运行一个程序的时候就是把这些指令从第一条执行到最后一条,而进程是一个正在运行的程序。 比如说,一个main.c文件是不可以直接运行的,对main.c进行编译链接之后生成一个main.exe(在W…

QT学习笔记-QT安装oracle oci驱动

QT学习笔记-QT安装oracle oci驱动 0、背景1、环境以及条件说明2、编译驱动2.1 下载oracle instant client2.2 编译qt oci驱动2.2.1 修改oci.pro2.2.2 MinGW64构建套件编译2.2.3 MSVC2019_64构建套件编译 3、访问数据库运行成功 0、背景 在使用QT开发应用的过程中,往…

Mysql SUBSTRING_INDEX - 按分隔符截取字符串

作用: 按分隔符截取字符串 语法: SUBSTRING_INDEX(str, delimiter, count) 属性: 参数说明str必需的。一个字符串。delimiter必需的。分隔符定义,是大小写敏感,且是多字节安全的count必须的。大于0或者小于0的数值…

案例分析丨大数据平台和应用测试,应该关注哪些点?

互联网的发展催生了大数据行业的诞生和发展。大数据平台和大数据应用成为了各家排兵布阵的重要之地。那么,从测试的视角来看,大数据平台和应用的测试,我们应该关注哪些点呢? 换个姿势看问题。今天我们从问题域的角度来聊一聊。 什…

【数据处理-番外篇】手写了几个数据处理,都是用的递归

博主:_LJaXi Or 東方幻想郷 专栏: JavaScript | 脚本语言 开发工具:Vs Code 数据处理 对象修改结构判断两对象是否全等(只针对对象未做其他类型)复杂结构去重我写的破代码(没用,逻辑,结构都不对) 一些原理我也不讲了,我就是记录一…

MySQL不走索引的情况分析

未建立索引 当数据表没有设计相关索引时,查询会扫描全表。 create table test_temp (test_id int auto_incrementprimary key,field_1 varchar(20) null,field_2 varchar(20) null,field_3 bigint null,create_date date null );expl…

【C++】虚继承(virtual base classes)

【C】虚继承(virtual base classes) 文章目录 【C】虚继承(virtual base classes)1. 使用原因2. 解决方法3. 例题练习 1. 使用原因 在多重继承(Multiple Inheritance) 的情况下,尤其是菱形继承时,容易出现问题,关于菱…

STM32F429IGT6使用CubeMX配置GPIO点亮LED灯

1、硬件电路 2、设置RCC,选择高速外部时钟HSE,时钟设置为180MHz 3、配置GPIO引脚 4、生成工程配置 5、部分代码 6、实验现象

CentOS7有线未托管,网络连接图标消失

问题描述 网络图标消失,显示“有线 未托管”,且无法连接网络 解决方案 ①编辑文件:vim /etc/sysconfig/network-scripts/ifcfg-ens33 ②删除NM_CONTROLLEDno ③重启网络:service network restart 立马就可以自动连接上网络&…

SqlServer基础之(触发器)

概念: 触发器(trigger)是SQL server 提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发&#x…

面试热题(两数之和)

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答…

并发——JDK 提供的并发容器总结

文章目录 一 JDK 提供的并发容器总结二 ConcurrentHashMap三 CopyOnWriteArrayList3.1 CopyOnWriteArrayList 简介3.2 CopyOnWriteArrayList 是如何做到的?3.3 CopyOnWriteArrayList 读取和写入源码简单分析3.3.1 CopyOnWriteArrayList 读取操作的实现3.3.2 CopyOnW…