前端祖传三件套JavaScript的对象之基础概念的属性

简介: 在 JavaScript 中,对象是一种非常重要的数据类型,用于表示一组相关属性和方法。每个对象都有一些属性,这些属性可以是数据属性或访问器属性。本文将介绍对象属性的概念、分类和使用方法。


一、属性的定义

对象属性是一个具有名称(键)和值的对应关系。可以通过 "." 或 "[]" 运算符来访问对象中的属性。例如:

const person = {
  name: 'Tom',
  age: 18
};
console.log(person.name); // 输出: Tom
console.log(person['age']); // 输出: 18

二、属性的分类

JavaScript 中的对象属性有两种类型:数据属性和访问器属性。

  1. 数据属性:

数据属性包含一个存储值的位置。它们也可以包含一些基本特征,如可写性、可枚举性和可配置性等。

let obj = {};
Object.defineProperty(obj, 'name', {
  value: 'Tom',
  writable: true, // 可写性
  enumerable: true, // 可枚举性
  configurable: true // 可配置性
});
console.log(obj.name); // 输出: Tom
obj.name = 'John';
console.log(obj.name); // 输出: John
  1. 访问器属性:

访问器属性不包含数据值,而是包含一对 getter 和 setter 函数,并且也可以设置一些基本特征。

let obj = {
  firstName: 'Tom',
  lastName: 'Smith',
  get fullName() { // getter 函数
    return this.firstName + ' ' + this.lastName;
  },
  set fullName(value) { // setter 函数
    let parts = value.split(' ');
    this.firstName = parts[0];
    this.lastName = parts[1];
  }
};
console.log(obj.fullName); // 输出: Tom Smith
obj.fullName = 'John Doe';
console.log(obj.firstName); // 输出: John
console.log(obj.lastName); // 输出: Doe

三、属性的使用方法

JavaScript 中的对象属性可以通过多种方式来使用和操作。例如:

  1. 修改属性值:
const person = {
  name: 'Tom',
  age: 18
};
person.age = 20;
console.log(person.age); // 输出: 20
  1. 添加属性:
const person = {
  name: 'Tom'
};
person.age = 18;
console.log(person.age); // 输出: 18
  1. 删除属性:
const person = {
  name: 'Tom',
  age: 18
};
delete person.age;
console.log(person.age); // 输出: undefined
  1. 遍历属性:
const person = {
  name: 'Tom',
  age: 18
};
for (let prop in person) {
  console.log(prop + ': ' + person[prop]);
}

四、总结

JavaScript 中的对象属性是非常重要的语言特性,它们可以帮助我们表示数据和状态,并且可以用于实现各种功能。在实际开发中,需要注意属性的分类和使用方法,以确保程序的正确性和性能。

目录
相关文章
|
15天前
|
JavaScript
JS 获取对象数据类型的键值对的键与值
JS 获取对象数据类型的键值对的键与值
|
18天前
|
JavaScript 算法
原生JS完成“一对一、一对多”矩形DIV碰撞检测、碰撞检查,通过计算接触面积(重叠覆盖面积)大小来判断接触对象DOM
原生JS完成“一对一、一对多”矩形DIV碰撞检测、碰撞检查,通过计算接触面积(重叠覆盖面积)大小来判断接触对象DOM
|
2天前
|
存储 JavaScript 索引
js开发:请解释什么是ES6的Map和Set,以及它们与普通对象和数组的区别。
ES6引入了Map和Set数据结构。Map的键可以是任意类型且有序,与对象的字符串或符号键不同;Set存储唯一值,无重复。两者皆可迭代,支持for...of循环。Map有get、set、has、delete等方法,Set有add、delete、has方法。示例展示了Map和Set的基本操作。
16 3
|
4天前
|
JavaScript 前端开发 开发者
JavaScript中的错误处理:try-catch语句与错误对象
【4月更文挑战第22天】JavaScript中的错误处理通过try-catch语句和错误对象实现。try块包含可能抛出异常的代码,catch块捕获并处理错误,finally块则无论是否出错都会执行。错误对象提供关于错误的详细信息,如类型、消息和堆栈。常见的错误类型包括RangeError、ReferenceError等。最佳实践包括及时捕获错误、提供有用信息、不忽略错误、利用堆栈信息和避免在finally块中抛错。
|
10天前
|
JavaScript
【Js】检查Date对象是否为Invalid Date
【Js】检查Date对象是否为Invalid Date
14 0
|
10天前
|
存储 JavaScript 前端开发
JavaScript的引用数据类型主要包括对象
【4月更文挑战第16天】JavaScript的引用数据类型主要包括对象
16 4
|
15天前
|
JavaScript
js 字符串String转对象Object
该代码示例展示了如何将一个以逗号分隔的字符串(`'1.2,2,3,4,5'`)转换为对象数组。通过使用`split(',')`分割字符串并`map(parseFloat)`处理每个元素,将字符串转换成浮点数数组,最终得到一个对象数组,其类型为`object`。
|
8月前
|
Web App开发 前端开发 JavaScript
前端学习笔记202307学习笔记第五十七天-模拟面试笔记react-fiber解决了什么问题
前端学习笔记202307学习笔记第五十七天-模拟面试笔记react-fiber解决了什么问题
95 0
|
8月前
|
前端开发 定位技术
前端学习笔记202305学习笔记第二十三天-地图单线程配置
前端学习笔记202305学习笔记第二十三天-地图单线程配置
65 0
前端学习笔记202305学习笔记第二十三天-地图单线程配置
|
8月前
|
前端开发 API
前端学习笔记202307学习笔记第五十七天-模拟面试笔记react-react-redux的工作流程
前端学习笔记202307学习笔记第五十七天-模拟面试笔记react-react-redux的工作流程
55 0