对象属性名
在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的值进行修改