Does the new array property affect its length? Is such an assignment valid at all?
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
JavaScript arrays are used to store values in an orderly fashion. Normally, to add a new element, you should use the built-in push()
function.
But, in JS, all arrays are objects in the first place. Which means you can add new fields to them.
The assignment arr.greeting = 'Hello, world!'
won’t raise any errors and is perfectly fine from the language standpoint.
Once it’s executed, the array will have an extra property greeting
.
The length of an array won’t change as Hello, world!
isn’t considered one of the elements of the array.
ANSWER: the length of an array won’t change and will remain equal to 4
. The second console.log
prints out Hello, world!
to the screen.
Top comments (3)
Quick question:
Wouldn’t you be able to extend the prototype too to produce the same behaviour ?
Yes you could. Even though this is considered a bad practice to extend global objects for demonstration purpose you could add a property to the
Array
prototype.All future arrays will inherit this property after extension.
Yes, you can. JS is wild. You can do pretty much anything you can think of.
@aminnairi shows a great example