当前位置: 首页 > news >正文

obj.name 和 obj[name]的区别?【前端】

当你打算放弃梦想时,告诉自己再多撑一天,一个星期,一个月,再多撑一年,你会发现,拒绝退场的结果令人惊讶。

目录

  • obj.name:
  • obj[name]:
  • 总结:

obj.name 和 obj[name] 是两种访问对象属性的方式,它们之间的主要区别在于访问属性时的灵活性和使用场景:

obj.name:

  • 这是点符号访问对象属性的方法。
  • name 是一个属性名,必须是合法的 JavaScript 标识符(例如,不能包含空格或特殊字符,不能以数字开头)。
  • 属性名在代码中是硬编码的,不能动态变化。
  • 适用于属性名已知且符合命名规范的情况。
const obj = { name: 'Alice', age: 25 };
console.log(obj.name); // 输出: Alice

obj[name]:

  • 这是方括号符号访问对象属性的方法。
  • name 可以是一个字符串或一个表达式,其结果是一个字符串。
  • 允许动态地使用变量来访问对象的属性。
  • 适用于属性名在运行时才确定的情况,或者属性名不符合合法标识符的情况(如包含空格或特殊字符)。
const obj = { name: 'Alice', age: 25 };
const propName = 'name';
console.log(obj[propName]); // 输出: Alice

const obj2 = { 'first name': 'Bob' };
console.log(obj2['first name']); // 输出: Bob

总结:

  • 点符号适用于属性名已知且符合命名规范的情况
  • 方括号符号提供了更多的灵活性,适用于需要动态访问属性名的场景或属性名不符合标识符规范的情况
  • obj.name就是修改对象里面属性值的意思,而obj[name]就是增加属性名和值的意思

相关文章:

  • 【Yonyou-BIP】平台档案删除时报自建应用实体错误
  • Bash判断命令是否存在
  • androd的XML页面 跳转 Compose Activity 卡顿问题
  • 009_抽象类和接口
  • 计算机视觉五大技术——深度学习在图像处理中的应用
  • Spring、Spring Boot和 Spring Cloud 的关系
  • 网络安全·第一天·IP协议安全分析
  • Python高级爬虫之JS逆向+安卓逆向1.2节: 变量与对象
  • 科普:GBDT与XGBoost比较
  • MySQL的左连接、右连接、内连接、外连接
  • 【CPP】内存泄漏详解
  • Git 使用说明和配置
  • Logo语言的在线课程学习
  • 机器学习(神经网络基础篇)——个人理解篇5(梯度下降中遇到的问题)
  • VSCode中Marp插件
  • 爱舍伦外销模式超七成依赖单一客户:毛利率承压,研发费用率远弱同行
  • 大数据学习(99)-CDH组件详解
  • Python星球日记:第10天 - 模块与包
  • 视频分析设备平台EasyCVR打造汽车门店经营场景安全:AI智慧安防技术全解析
  • 瑞芯微RK3568嵌入式AI项目实战:项目方向(三)
  • 国家消防救援局应急通信和科技司负责人张昊接受审查调查
  • 国家发改委谈稳定外资:将研究制定鼓励外资企业境内再投资政策措施
  • 鸿蒙电脑正式发布,余承东:国产软件起步晚,基础弱,探索面向未来的电脑体验
  • 多名幼师殴打女童被行拘后续,盘锦教育局工作人员:该局将专项整治全市幼儿园
  • 男子服用头孢后饮酒应酬致昏迷在家,救援人员破门施救后脱险
  • “十五五”时期长三角需创新机制,形成高水平一体化合作路径