關於JavaScript中的Object的Key必定是字符串的思考

前幾天在學習Map和Object時,突然想到一個問題: 你們有思考過Object的key爲何要用toString()方法轉換成字符串嗎?html

今上午查閱了一下資料,獲得了一個大體的結論: 在js中的Object,本質上是鍵值對的集合,是基於Hash表存儲變量的。 能夠經過Hash表的散列算法進行快速查找。 由於變量和對象中的屬性是隨時可變的,因此,對象所佔用的空間必須支持隨時調整。從這個角度說,Hash表也是比較契合這個特性的。算法

而ES6中的Map則是爲了彌補Object的key只能是str類型。學習

什麼是Hash表? 答:hash表其實就是管理一對對<Key,Value>這樣的結構的表。code

參考文獻: JavaScript系列-----對象基於哈希存儲(<Key,Value>之Key篇)htm

相關文章
相關標籤/搜索