1. 是否能区分字符串
const obj = { 0: '张三', 1: '李四', 2: '王二' }
console.log(obj[0])
console.log(obj['0'])
obj['0'] = '赵六'
console.log(obj)
let mp = new Map([[0, '张三'], [1, '李四'], [2, '王二']])
console.log(mp.get(0))
console.log(mp.get('0'))
mp.set(0, '赵六')
console.log(mp)
2. 遍历顺序是否稳定
const obj = { name: '张三', age: 10 }
Object.keys(obj)
let mp = new Map([['name', '张三'], ['age', 10]])
console.log([...mp.keys()])
3. 属性可以是哪些值
const obj = { 0: '张三', '1': '李四', age: 18 }
const obj = {name:'z'}
let mp = new Map([[0, '张三'], ['age', 10], ['1', '李四'], [true, '真'], [obj, 'sss']])
console.log(mp.get(obj))
4. 内存消耗
- map相比object更加节省内存。大约可以节省20%~50%内存
5. 性能对比