堆栈内存

125 阅读1分钟

堆:存储引用类型值的空间

栈:存储基本类型值和指定代码的环境


示例1

对象当中,属性名不能重复,数字属性名 === 字符串属性名

let a = {}, b = '0', c = 0;
a[b] = '天气';
a[c] = '温度';
console.log(a[b]); //温度
分析:
a[b] => a['0'] = '天气'
a[c] => a[0] = '温度'


示例2

Symbol 创建唯一值的

Symbol('1') === Symbol('1') //false

let a = {}, b = Symbol('1'), c = Symbol('1');
a[b] = '天气';
a[c] = '温度';
console.log(a[b]);    //天气


示例3

对象作为属性会被转化成字符串

let a = {}, b = {n: '1'}, c = {m: '2'};
a[b] = '天气';
a[c] = '温度';
console.log(a[b]);    //温度
分析
let obj = {};
let b = {name: 'xxx'};
obj[b] = 100  // b => [object object],相当于执行 ({name: 'xxx'}).toString()
obj => Object:{[object object]: 100}



alert 弹出来的都是字符串