JS中对象的方括号[]和点.【对象属性的访问和设置】

news/2024/8/26 18:52:39 标签: 前端, javascript

在 JavaScript 中,可以使用多种方式来访问和设置对象的属性, 包括点表示法和方括号表示法。

点表示法和方括号表示法

  1. 点表示法:使用点号(.)来访问或设置对象的属性。
  2. 方括号表示法:使用方括号([])来访问或设置对象的属性。

这两种方法基本上是等价的,然而在某些情况下,方括号表示法能够提供更多的灵活性,例如属性名是变量或包含特殊字符的情况。

示例代码解释

javascript">const s = {};
s['name'] = 'john';
s.name = 'bob';

这段代码执行了以下操作:

  1. 创建对象

    javascript">const s = {};
    

    创建了一个新的空对象 s

  2. 方括号表示法设置属性

    javascript">s['name'] = 'john';
    

    使用方括号表示法,设置对象 s 的属性 name'john'

    此时,s 的状态为:

    javascript">{
      name: 'john'
    }
    
  3. 点表示法设置属性

    javascript">s.name = 'bob';
    

    使用点表示法,设置对象 s 的属性 name'bob'

    最终,s 的状态为:

    javascript">{
      name: 'bob'
    }
    

由于最后一次设置操作赋值为 'bob',属性名和其值之间的映射被更新,因此最终 s.name 变成了 'bob'

点表示法 vs 方括号表示法

使用点表示法的示例:
javascript">const person = {};
person.name = 'Alice';
person.age = 25;

console.log(person.name); // 输出 'Alice'
console.log(person.age);  // 输出 25
使用方括号表示法的示例:
javascript">const person = {};
person['name'] = 'Alice';
person['age'] = 25;

console.log(person['name']); // 输出 'Alice'
console.log(person['age']);  // 输出 25
方括号表示法的特殊应用场景:
  1. 使用变量作为属性名

    javascript">const person = {};
    const prop = 'name';
    person[prop] = 'Alice';
    
    console.log(person.name); // 输出 'Alice'
    
  2. 处理包含特殊字符的属性名

    javascript">const person = {};
    person['first-name'] = 'Alice';
    
    console.log(person['first-name']); // 输出 'Alice'
    
  3. 动态属性名

    javascript">const person = {};
    let key = 'age';
    
    person[key] = 30;
    
    console.log(person.age); // 输出 30
    

总结

  • 点表示法 (.):更简洁,用于常规属性名(遵循变量命名规则)。
  • 方括号表示法 ([]):更灵活,可用于属性名是变量、含有特殊字符或者包含空格的情况。

在你的示例中,两种表示法都用于设置和获取对象属性,最后一次的赋值操作覆盖了前一个操作,因此 s.name 的最终值为 'bob'


http://www.niftyadmin.cn/n/5558365.html

相关文章

可解释医学视觉问答的反事实因果干预| 文献速递-基于深度学习的多模态数据分析与生存分析

Title 题目 Counterfactual Causal-Effect Intervention for Interpretable Medical Visual Question Answering 可解释医学视觉问答的反事实因果干预 01 文献速递介绍 深度学习的进步在计算机视觉、自然语言处理和信息检索领域成功地取得了最先进的(SOTA&…

【Leetcode】二十一、前缀树 + 词典中最长的单词

文章目录 1、背景2、前缀树Trie3、leetcode208:实现Trie4、leetcode720:词典中最长的单词 1、背景 如上,以浏览器搜索时的自动匹配为例: 如果把所有搜索关键字放一个数组里,则:插入、搜索一个词条时&#x…

树莓派docker自制镜像

挂载img文件到目录 cd /a/img tar -czvf rr.tar.gz ./ docker import tt.tar.gz rootpi:/home/pi/2# docker tag ff142da9042f arm7:v01 rootpi:/home/pi/2# docker images REPOSITORY TAG IMAGE ID CREATED SIZE arm7 …

海外媒体发稿:葡萄牙-实现高效媒体软文发稿计划-大舍传媒

一、葡萄牙媒体环境概述 葡萄牙,位于欧洲大陆西南端的国家,拥有丰富的文化和历史。在这个国家,媒体行业也有着相当大的影响力。葡萄牙的媒体环境多元化,包括电视、广播、报纸、杂志和互联网等各个领域。 二、葡萄牙媒体发稿的重…

亲子母婴行业媒体邀约宣发资源

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 亲子母婴行业是一个综合性的产业,涉及多个领域,包括儿童食品,儿童玩具,服装,洗护,月子中心,母婴护理&a…

神经网络参数初始化的常见方法

参数初始化 bias偏置:直接初始化为0 weight权重: 随机初始化 在高斯分布的数据中随机采样 标准初始化 在均匀分布的随机数中采样 Xavier初始化 该方法的基本思想是各层的激活值和梯度的方差在传播过程中保持一致,也叫做Glorot初始化。 正态…

2407-mysql笔记

数据库(Database),简称db mariadbmysql 常见的数据库:mysql、oracle、高斯(Gauss)、redis、sqlserver、SQLite、HBase 一、SQL(Structured Query Language):结构化查询语言 1、作用&#xff…

【46 Pandas+Pyecharts | 当当网畅销图书榜单数据分析可视化】

文章目录 🏳️‍🌈 1. 导入模块🏳️‍🌈 2. Pandas数据处理2.1 读取数据2.2 查看数据信息2.3 去除重复数据2.4 书名处理2.5 提取年份 🏳️‍🌈 3. Pyecharts数据可视化3.1 作者图书数量分布3.2 图书出版年份…