首页 > web前端 > js教程 > JavaScript 中的对象是什么?

JavaScript 中的对象是什么?

Patricia Arquette
发布: 2024-12-29 04:26:19
原创
163 人浏览过

What are Objects in JavaScript?

  • 定义: 对象存储带键的数据集合和更复杂的实体。
  • 创作:
    • 对象构造函数语法: let user = new Object();
    • 对象文字语法: let user = {}; (首选并广泛使用)。

文字和属性

  • 对象是属性的集合。属性是一个键:值对。
  let user = {
    name: 'John',
    age: 30,
  }
登录后复制
登录后复制
  • 访问属性:
    • 点表示法:user.name 返回“John”。
    • 方括号表示法:user["name"] 也返回“John”。
  • 添加/删除属性:
  user.isAdmin = true // Adding
  delete user.age // Removing
登录后复制
登录后复制

带钥匙的特殊箱子

  • 多字键:使用引号和方括号。
  user['likes birds'] = true
  alert(user['likes birds']) // true
登录后复制
  • 动态键(计算属性):
    • 您可以使用变量或表达式作为键。
  let fruit = 'apple'
  let bag = { [fruit]: 5 } // Equivalent to { "apple": 5 }
登录后复制

简写属性

  • 当变量名与属性名匹配时:
  function makeUser(name, age) {
    return { name, age } // Same as name: name, age: age
  }
登录后复制

属性名称规则

  • 对象属性可以使用保留字或特殊字符。
  • 非字符串键(例如数字)转换为字符串:
  let obj = { 0: 'test' }
  alert(obj[0]) // "test"
登录后复制

测试和迭代属性

  1. 属性存在:
    • 在 obj 中使用“key”来检查某个键是否存在。
   let user = { age: undefined }
   alert('age' in user) // true
登录后复制
  1. 使用 for..in 进行迭代:
   let user = { name: 'John', age: 30 }
   for (let key in user) {
     alert(key) // Outputs: "name", "age"
     alert(user[key]) // Outputs: "John", 30
   }
登录后复制

财产订单

  • 整数键: 按升序排序。
  • 非整数键: 保留其创建顺序。

现实代码示例:用户配置文件

let userProfile = {
  firstName: 'Jane',
  lastName: 'Smith',
  email: 'jane.smith@example.com',
  isVerified: true,
  address: {
    street: '123 Elm Street',
    city: 'Metropolis',
    postalCode: '12345',
  },
  interests: ['reading', 'hiking', 'coding'],

  // Method inside an object
  getFullName() {
    return `${this.firstName} ${this.lastName}`
  },

  // Dynamically updating properties
  updateEmail(newEmail) {
    this.email = newEmail
    console.log(`Email updated to ${this.email}`)
  },
}

// Accessing properties
console.log(userProfile.getFullName()) // Output: Jane Smith

// Updating email using the method
userProfile.updateEmail('jane.doe@example.com') // Output: Email updated to jane.doe@example.com

// Accessing nested properties
console.log(userProfile.address.city) // Output: Metropolis

// Iterating over interests
console.log('User Interests:')
userProfile.interests.forEach((interest) => console.log(interest))
登录后复制

添加和删除属性

创建对象后可以动态添加或删除属性。

// Adding a new property
userProfile.phoneNumber = '555-1234'
console.log(userProfile.phoneNumber) // Output: 555-1234

// Deleting a property
delete userProfile.isVerified
console.log(userProfile.isVerified) // Output: undefined
登录后复制

计算属性

创建对象时,可以使用方括号动态计算属性名称。

let key = 'favoriteColor'
let userPreferences = {
  [key]: 'blue',
  [key + 'Secondary']: 'green',
}

console.log(userPreferences.favoriteColor) // Output: blue
console.log(userPreferences.favoriteColorSecondary) // Output: green
登录后复制

迭代对象属性

使用 for...in,可以循环遍历对象中的所有键。

for (let key in userProfile) {
  console.log(`${key}: ${userProfile[key]}`)
}
登录后复制

现实示例:产品库存

以下是如何在实际场景中使用对象,例如管理产品库存:

  let user = {
    name: 'John',
    age: 30,
  }
登录后复制
登录后复制

在运算符中使用

in 运算符检查对象中是否存在属性。它在验证可选或动态添加的属性时特别有用。

  user.isAdmin = true // Adding
  delete user.age // Removing
登录后复制
登录后复制

总结

对象是 JavaScript 的核心,提供灵活性和功能:

  • 键可以是字符串或符号。
  • 使用点或括号表示法访问属性。
  • 使用 for..in 迭代键。
  • 了解整数与非整数属性排序。

以上是JavaScript 中的对象是什么?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板