區(qū)別:1、原生object對象存儲鍵值對組合中鍵的類型是字符串,map對象存儲鍵值對的類型可以是任意類型;2、原生object對象獲取鍵值使用的是“Object.keys”,返回的是數(shù)組,而map對象采用的是“map變量.keys()”。
本教程操作環(huán)境:windows10系統(tǒng)、ECMAScript 6.0版、Dell G3電腦。
es6的map對象和原生對象有啥區(qū)別
區(qū)別
object和Map存儲的都是鍵值對組合。但是:
-
object的鍵的類型是 字符串;
-
map的鍵的類型是 可以是任意類型;
另外注意,
-
object獲取鍵值使用Object.keys(返回數(shù)組);
-
Map獲取鍵值使用 map變量.keys() (返回迭代器)。
示例代碼:
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>js es6 map 與 原生對象區(qū)別</title> </head> <body> <script type="text/javascript"> let a = { o: 1 }; // string console.log(typeof Object.keys(a)[0]); let map = new Map(); map.set(a, 'content'); // 輸出是object 也可以是任何類型 console.log(map.keys().next()); </script> </body> </html>
【