前端必知必会-JavaScript 对象

文章目录

  • JavaScript 对象
    • 对象属性
    • 对象方法
    • JavaScript 变量
    • JavaScript 对象
    • JavaScript 对象定义
      • JavaScript 对象文字
      • 创建 JavaScript 对象
      • 使用 new 关键字
      • 对象属性
      • 访问对象属性
    • JavaScript 对象方法
    • JavaScript 原始值
    • JavaScript 对象是可变的
  • 总结


JavaScript 对象

现实生活中的对象
现实生活中的对象包括:房屋、汽车、人、动物或其他任何对象。

以下是汽车对象的示例:

汽车对象属性方法

car.name = Fiat

car.model = 500

car.weight = 850kg

car.color = white
car.start()

car.drive()

car.brake()

car.stop()

对象属性

现实生活中的汽车具有重量和颜色等属性:

car.name = Fiat、car.model = 500、car.weight = 850kg、car.color = white。

汽车对象具有相同的属性,但不同汽车的值不同。

对象方法

现实生活中的汽车具有启动和停止等方法:

car.start()、car.drive()、car.brake()、car.stop()。

汽车对象具有相同的方法,但这些方法在不同的时间执行。

JavaScript 变量

JavaScript 变量是数据值的容器。

此代码将一个简单值 (Fiat) 分配给名为 car 的变量:

示例

let car = "Fiat";

JavaScript 对象

对象也是变量。但对象可以包含许多值。

此代码将许多值 (Fiat、500、white) 分配给名为 car 的对象:

示例

const car = {type:"Fiat", model:"500", color:"white"};

注意:
使用 const 关键字声明对象是一种常见做法。

JavaScript 对象定义

如何定义 JavaScript 对象

  • 使用对象文字
  • 使用 new 关键字
  • 使用对象构造函数

JavaScript 对象文字

对象文字是花括号 {} 内的名称:值对列表。

{firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"}

注意:
名称:值对也称为键:值对。

对象文字也称为对象初始化器。

创建 JavaScript 对象

这些示例创建具有 4 个属性的 JavaScript 对象:

示例

// 创建对象
const person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};

空格和换行符并不重要。对象初始化器可以跨越多行:

// 创建对象
const person = {
firstName: "John",
lastName: "Doe",
age: 50,
eyeColor: "blue"
};

此示例创建一个空的 JavaScript 对象,然后添加 4 个属性:

// 创建对象
const person = {};// 添加属性
person.firstName = "John";
person.lastName = "Doe";
person.age = 50;
person.eyeColor = "blue";

使用 new 关键字

此示例使用 new Object() 创建一个新的 JavaScript 对象,然后添加 4 个属性:

示例

// 创建对象
const person = new Object();// 添加属性
person.firstName = "John";
person.lastName = "Doe";
person.age = 50;
person.eyeColor = "blue";

注意:
上述示例完全相同。

但是,无需使用 new Object()。

为了便于阅读、简单和执行速度,请使用对象文字方法。

对象属性

JavaScript 对象中的命名值称为属性。

属性
firstNameJohn
lastNameDoe
age50
eyeColorblue
以名称值对形式编写的对象类似于:

PHP 中的关联数组
Python 中的字典
C 中的哈希表
Java 中的哈希映射
Ruby 和 Perl 中的哈希

访问对象属性

您可以通过两种方式访问​​对象属性:

objectName.propertyName
objectName[“propertyName”]
示例

person.lastName;
person["lastName"];

JavaScript 对象方法

方法是可以对对象执行的操作。

方法是存储为属性值的函数定义。

属性属性值
firstNameJohn
lastNameDoe
age50
eyeColorblue
fullNamefunction() {return this.firstName + " " + this.lastName;}
示例
const person = {
firstName: "John",
lastName : "Doe",
id : 5566,
fullName : function() {
return this.firstName + " " + this.lastName;
}
};

在上面的例子中,这指的是 person 对象:

this.firstName 表示 person 的 firstName 属性。

this.lastName 表示 person 的 lastName 属性。

在 JavaScript 中,对象为王。

如果您理解对象,您就理解了 JavaScript。

对象是属性和方法的容器。

属性被命名为值。

方法是存储为属性的函数。

属性可以是原始值、函数,甚至是其他对象。

在 JavaScript 中,几乎“一切”都是对象。

对象是对象
数学是对象
函数是对象
日期是对象
数组是对象
映射是对象
集合是对象
除原始值外,所有 JavaScript 值都是对象。

JavaScript 原始值

原始值是没有属性或方法的值。

3.14 是原始值

原始数据类型是具有原始值的数据。

JavaScript 定义了 7 种原始数据类型:

  • 字符串
  • 数字
  • 布尔值
  • null
  • 未定义undefined
  • 符号
  • bigint
  • 不可变
    原始值是不可变的(它们是硬编码的,无法更改)。

如果 x = 3.14,则可以更改 x 的值,但不能更改 3.14 的值。

类型注释
“Hello”字符串“Hello”始终为“Hello”
3.14数字3.14 始终为 3.14
true布尔值true 始终为 true
false布尔值false 始终为 false
nullnull (对象)null 始终为 null
undefinedundefinedundefined 始终为 undefined

JavaScript 对象是可变的

对象是可变的:它们通过引用而不是值来寻址。

如果 person 是一个对象,则以下语句不会创建 person 的副本:

const x = person;
对象 x 不是 person 的副本。对象 x 是 person。

对象 x 和对象 person 共享相同的内存地址。

对 x 的任何更改也会更改 person:

示例

//创建一个对象
const person = {
firstName:"John",
lastName:"Doe",
age:50, eyeColor:"blue"
}//创建一个副本
const x = person;// 更改两者中的 Age
x.age = 10;

总结

本文介绍了JavaScript 对象的使用,如有问题欢迎私信和评论

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

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

相关文章

电赛入门之软件stm32keil+cubemx

hal库可以帮我们一键生成许多基本配置,就不需要自己写了,用多了hal库就会发现原来用基本库的时候都过的什么苦日子(笑 下面我们以f103c8t6,也就是经典的最小核心板来演示 一、配置工程 首先来新建一个工程 这里我们配置rcc和sys&…

漏洞分析技术实践_数组越界漏洞

1. 基础知识 1.1 数组原理 数组是一段连续的内存存储空间&#xff0c;包含多个类型相同的元素。通过数组名可以在内存中找到对应的数组空间&#xff0c;并且可以通过数组名和索引来访问数组中的元素。 #include <stdio.h>int main(){int a[10];int i0;printf("a’…

Elasticsearch开源仓库404 7万多star一夜清零

就在昨晚&#xff0c;有开发者惊奇地发现自己的开源项目 star 数竟然超过了最流行的开源全文搜索引擎 Elasticsearch。发生了什么事&#xff1f;Elasticsearch 竟然跌得比股票还凶 —— 超 7 万 star 的 GitHub 仓库竟然只剩下 200 多。 从社交媒体的动态来看&#xff0c;Elast…

汽车免拆诊断案例 | 2010款起亚赛拉图车发动机转速表指针不动

故障现象  一辆2010款起亚赛拉图车&#xff0c;搭载G4ED 发动机&#xff0c;累计行驶里程约为17.2万km。车主反映&#xff0c;车辆行驶正常&#xff0c;但组合仪表上的发动机转速表指针始终不动。 故障诊断  接车后进行路试&#xff0c;车速表、燃油存量表及发动机冷却温度…

硅谷(12)菜单管理

菜单管理模块 11.1 模块初始界面 11.1.1 API&&type API: import request from /utils/request import type { PermisstionResponseData, MenuParams } from ./type //枚举地址 enum API {//获取全部菜单与按钮的标识数据ALLPERMISSTION_URL /admin/acl/permission…

【电商搜索】现代工业级电商搜索技术-亚马逊-经典的Item-to-Item协同推荐算法

【电商搜索】现代工业级电商搜索技术-亚马逊-经典的Item-to-Item协同推荐算法 文章目录 【电商搜索】现代工业级电商搜索技术-亚马逊-经典的Item-to-Item协同推荐算法1. 论文信息2. 算法介绍3. 创新点小结4. 实验效果5. 算法结论6. 代码实现7. 问题及优化方向1. 冷启动问题2. 稀…

computed拦截v-model

一&#xff0c;问题 在父组件和子组件中都使用v-model会打破单项数据流。 二&#xff0c;方法 基于上述问题采用computed拦截v-model <!-- 父组件 --> <template><div><my-component v-model"form"></my-component></div> &l…

Django中分组查询(annotate 和 aggregate 使用)

在 Django 中&#xff0c;aggregate() 和 annotate() 是两个常用的聚合函数。它们都可以用来对一组查询结果进行聚合操作&#xff0c;但它们的作用是有所不同的。 aggregate() 是用于聚合整个查询集的结果&#xff0c;通常用于返回一个值&#xff0c;例如计算查询集中所有结果…

Java - 数组实现大顶堆

题目描述 实现思路 要实现一个堆&#xff0c;我们首先要了解堆的概念。 堆是一种完全二叉树&#xff0c;分为大顶堆和小顶堆。 大顶堆&#xff1a;每个节点的值都大于或等于其子节点的值。 小顶堆&#xff1a;每个节点的值都小于或等于其子节点的值。 完全二叉树&#xff…

简单汇编教程10 数组

目录 实践&#xff1a;相加连续的数 数组是在内存中连续的一串变量。我这样说&#xff0c;可能你已经想到的大致的定义了&#xff1a; NUMBERS DW 34, 45, 56, 67, 75, 89 现在我们就定义了一个Number数组&#xff0c;里面存放的连续的六个数字&#xff1a;34, 45, 56, …

快速上手 Rust——实用示例

Rust 跨平台应用开发第一章&#xff1a;快速上手 Rust——实用示例 1.3 实用示例 在这一节中&#xff0c;我们将通过一系列实用的示例来帮助您更好地理解 Rust 的特性&#xff0c;并展示如何在实际项目中使用这些特性。示例将涵盖文件操作、网络请求、并发编程、命令行工具以…

人工智能与数据安全:Facebook如何应对隐私挑战

在数字时代&#xff0c;数据隐私和安全成为了用户和企业关注的核心问题。作为全球最大的社交媒体平台之一&#xff0c;Facebook面临着日益严峻的隐私挑战。近年来&#xff0c;频繁发生的数据泄露事件和对用户隐私的质疑&#xff0c;使得Facebook在保护用户数据方面倍感压力。为…

2024年ABS分区更新,聚焦管理科学领域新动态

2024学术期刊指南简介 2024年10月30日&#xff0c;英国商学院协会&#xff08;Chartered Association of Business Schools&#xff09;发布了最新的《学术期刊指南&#xff08;Academic Journal Guide&#xff09;》&#xff08;以下简称“《指南》”&#xff09;&#xff0c…

基于用户体验的在线相册管理平台创新设计与实现

基于用户体验的在线相册管理平台创新设计与实现 摘要 随着互联网和智能设备的普及&#xff0c;照片数量剧增&#xff0c;传统相册管理方式难以满足需求&#xff0c;在线相册管理平台应运而生。本文对在线相册管理平台的设计与实现进行了深入研究。首先剖析了平台所采用的 B/S…

解读!中国人工智能大模型技术白皮书!

近期&#xff0c;中国人工智能协会发布了《中国人工智能大模型技术白皮书》&#xff0c;系统梳理了大模型技术演进&#xff0c;深入探讨关键技术要素&#xff0c;并剖析当前挑战及未来展望。我为大家做了简要总结&#xff0c;并附上原文供深入阅读。 目录 第 1 章 大模型技术概…

深度学习笔记之BERT(一)BERT的基本认识

深度学习笔记之BERT——BERT的基本认识 引言回顾&#xff1a;Transformer的策略回顾&#xff1a;Word2vec的策略和局限性 BERT \text{BERT} BERT的基本理念抽象的双向BERT的预训练策略 预训练与微调 引言 从本节开始&#xff0c;将介绍 BERT \text{BERT} BERT系列模型以及其常…

二:Linux学习笔记(第一阶段)-- Linux命令

目录 Linux注意事项&#xff1a; Linux目录 Linux系统基础命令 1. 文件和目录操作 2. 文件查看和编辑 3. 文件权限和所有权 4. 系统信息 5. 网络命令 6. 文件查找 7. 压缩和解压缩 8. 系统管理 Linux注意事项&#xff1a; 严格区分大小写一切皆文件windows下的程序不…

flask websocket服务搭建,flask-sock 和 flask-socketio

flask websocket服务搭建&#xff0c;flask-sock 和 flask-socketio 首先说下socket、socketio 和 websockets 之间的区别 socket是网络上运行的两个程序之间的双向通信链路的一个端点。这是一个非常低级的东西&#xff0c;其他一切都是在 TCP 套接字之上实现的。 WebSocket …

基于 Java 语言双代号网络图自动绘制系统

基于Java语言双代号网络图自动绘制系统研究与实现 一、摘要 网络计划技术已被广泛应用于工业、农业、国防、科学研究等多个领域中的项目计划与管理&#xff0c;以缩短项目周期&#xff0c;提高资源的利用效率。在网络计划技术中&#xff0c;绘制网络图是网络计划技术的基础工…

多模态大模型微调实践!PAI+LLaMA Factory搭建AI导游

一、引言 AI的快速发展推动了各行各业的智能化转型和创新&#xff0c;随之而来的是对AI应用的迫切需求。 如何微调大模型、高效搭建AI应用成为了开发者们广泛关注的技术方向。阿里云人工智能平台PAI&#xff0c;联合开源低代码大模型微调框架LLaMA Factory &#xff0c;共同打…