访问大对象的对象属性有多昂贵?

sg.*_*.cc 5 javascript javascript-objects

背景:我主要是自学成才的程序员。在过去的六年里,我一直在做专业的 JS 工作,但由于我对计算机科学基础知识缺乏了解,有些事情我不清楚。

考虑对象:

const test = {a: 1, b: 2, c: 3}  
Run Code Online (Sandbox Code Playgroud)

您可以通过b两种方式找到财产的价值。途径一:

console.log(test.b)  
Run Code Online (Sandbox Code Playgroud)

或者,路径 2:

for( const prop of Object.keys(test) ){
    if( prop === 'b' ) return console.log(test[prop])
}  
Run Code Online (Sandbox Code Playgroud)

我的问题:在幕后,路径 1 是否与路径 2 基本相同?计算机还需要翻遍所有的属性test才能找到b吗?或者它是否以某种方式“神奇地”知道当它到达内存时确切地查看哪里,test[b]因此它不必扫描整个对象?