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
Arrayprototype.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