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

console.log(MyEnum[0])和console.log(MyEnum.A)区别

在 JavaScript 里,console.log(MyEnum[0])console.log(MyEnum.A) 的区别和 MyEnum 的类型有关。下面分情况进行说明。

1. MyEnum 为普通对象

const MyEnum = {
    A: 'apple',
    B: 'banana'
};

// 尝试访问索引为 0 的属性,通常会得到 undefined
console.log(MyEnum[0]); 

// 访问键为 'A' 的属性
console.log(MyEnum.A); 

在这个例子中,MyEnum 是一个普通对象,它没有索引为 0 的属性,所以 MyEnum[0] 会返回 undefined。而 MyEnum.A 能够访问对象里键为 A 的属性,其值为 'apple'

2. MyEnum 为数组

const MyEnum = ['apple', 'banana'];
// 访问索引为 0 的元素
console.log(MyEnum[0]); 

// 尝试访问键为 'A' 的属性,会得到 undefined
console.log(MyEnum.A); 

这里 MyEnum 是一个数组,MyEnum[0] 会返回数组中索引为 0 的元素,也就是 'apple'。由于数组没有键为 A 的属性,所以 MyEnum.A 会返回 undefined

3. MyEnum 为 TypeScript 枚举(易混淆)

enum MyEnum {
    A,
    B
}

// 通过数值索引访问枚举成员名称
console.log(MyEnum[0]); 

// 通过枚举成员名称访问其值
console.log(MyEnum.A); 

在 TypeScript 枚举里,MyEnum[0] 是通过数值索引访问枚举成员的名称,其值为 'A';而 MyEnum.A 是通过枚举成员名称访问其值,默认情况下其值为 0。但如果此时枚举中将A设置为45,则MyEnum[0]就为undefined,而MyEnum[45]才为A!!
可以通过下方例子进行进一步理解:
在这里插入图片描述

总结

综上所述,console.log(MyEnum[0]) 是尝试按照索引或者数值来访问 MyEnum 的属性或成员,而 console.log(MyEnum.A) 则是按照键名或者枚举成员名称来访问 MyEnum 的属性或成员。最终结果取决于 MyEnum 的具体类型和结构
OK,我是微笑向阳,我们下次再见!!

相关文章:

  • Vue 自定义指令深度解析与应用实践
  • Mac下安装Zed以及Zed对MCP(模型上下文协议)的支持
  • 【eNSP实战】配置DHCP中继为非直连网段分配IP地址
  • AMI BIOS适配声卡
  • 数字孪生像魔镜,映照出无限可能的未来
  • leetcode0030 串联所有单词的子串-hard
  • WPF Prism事件聚合器EventAggregator
  • SQL与NoSQL的区别
  • Langchian构建代理
  • Django系列教程(12)——连接MySQL和PostgreSQL数据库
  • Devops CI/CD
  • 洛谷 P1962:斐波那契数列 ← 矩阵快速幂
  • JavaScript介绍-变量、常量、数据类型、类型转换
  • 车载以太网测试-13【网络层-IGMP协议】
  • 计算机网络——NAT
  • 深入解析大语言模型的 Function Call 实现—— 以 Qwen2.5为例
  • C# NX二次开发:在多个体的模型中如何实现拉伸操作布尔减
  • Java入职篇(5)—— IDEA快捷键
  • 使用 Docker 部署前端项目全攻略
  • DevOps实践:持续集成与持续部署完全指南
  • 著名医学翻译家王贤才逝世,享年91岁
  • 五大光伏龙头一季度亏损超80亿元,行业冬天难言结束
  • 市场监管总局出手整治涉企乱收费,聚焦政府部门及下属单位等领域
  • 中国人民解放军南部战区位南海海域进行例行巡航
  • 夜读丨跷脚牛肉乐翘脚
  • 临港迎来鸿蒙智行“尚界”整车及电池配套项目,首款车型今秋上市