1.对象属性名相关知识:
练习题:写出下列代码的输出结果
//example 1
var a={}, b='0', c=0;
a[b]='你好';
a[c]='世界';
console.log(a[b]);
---------------------
//example 2
var a={}, b=Symbol('1'), c=Symbol('1');
a[b]='你好';
a[c]='世界';
console.log(a[b]);
---------------------
//example 3
var a={}, b={n:'1'}, c={m:'2'};
a[b]='你好';
a[c]='世界';
console.log(a[b]);
obj[‘name’] 获取成员为name的属性值
obj[name] 把name变量存储的值作为成员获取其属性值
对象的属性名可以是:
- 字符串
- Symbol;
- 数字/布尔/null/undefined等基本数据类型值(用这些值直接处理和基于他们的字符串格式处理结果是一样的)
也有人认为属性名除了Symbol只能是字符串格式的
对于普通对象来讲,属性名不能是引用数据类型值(比如对象),设置为对象,也会转换为字符串;ES6中新增Map数据结构,这个结构中可以允许属性名是一个对象;
var obj = {
name: 'xxx',
0: 100,
true: 11,
null:10,
'null':12,
undefined:99
};
obj[Symbol('AA