Is there a way to rewrite the descriptor of length in the JS array?

is there a way to rewrite the descriptor of length in the js array

in js, the array length already has a default descriptor, and configurable is false, so there is no way to override it. Since I want to see if length is cached during the loop (using the length attribute to end a restriction), I want to override the gettet test of length

related codes

/ / Please paste the code text below (do not replace the code with pictures)

for (let i = 10; i < arr.length; iPP) {
    //arr.lengthlength
}

I wonder whether the length will be cached inside the browser, and whether the loop will only call length once and then use a cache value for all subsequent loops

Apr.18,2022

of course not cached.

var array = [0, 1, 2, 3];
for (let i = 0; i < array.length; iPP) {
  if (array.length < 10) {
    array.push(4);
  }
  console.log(i)
}

this code proves it.

arrays are also objects, so this code can also prove

var obj = {}
Object.defineProperty(obj, 'length', {
  get: function () {
    console.log('x');
    return 4;
  }
})

for (var i = 0; i < obj.length; iPP) {
  
}
The

obj.length property is not cached and is read every time

Menu