JS对象属性名

对象属性名

在JS中对象的属性名是什么格式的?

普通对象的属性名只能是“字符串”(普通对象的属性名可以是基本数据类型值)
Map这种数据结构支持对象作为属性名
但是普通对象的属性名不能是独享,如果是对象,需要转换为字符串存储

var a = {};
b = '0;'
c = 0;
a[b] = 'b'
a[c] = 'c'
console.log(a[b]); 

-> 'c'

对象的key(属性名)数字0等于字符串’0‘,属性名不能重复
一般是对象属性名 == 字符串属性名
数组的key(属性名)为数字

var a = {},
    b = Symbol('1'),
    c = Symbol('2');
 a[b] = 'b';
 a[c] = 'c';
 console.log(a[b])

-> 'b'

Symbol是唯一的

var a = {n:12};
var b = a;
b['n'] = 13
console.log(a.n)

-> 13

var a = {n:13}
1.创建一个堆内存
2.把键值对存储到堆内存中
3.堆内存地址放到栈中,共变量调用

var b =a;
b['n'] = 13;
b基于地址码,找到堆内存,把堆内存中的属性n的值进行修改

原文地址:https://www.cnblogs.com/xiaoxu-xmy/p/13633822.html