Secrets of Javascript Arrays

tn500w_javascript-logo

Secrets of Javascript Arrays

Arrays are a common structure in many languages, Its a sequence of values that you wanna access in an indexed based way. Let’s define an array.

var myArray=[100,200,300];

A point to note that Javascript arrays are zero based(well ofcourse nothing new!).

But what’s the secret. Let’s raise the curtains.

What if I say to calculate the length of the array.

myArray.length;

That’s it, just access the length property of the array. Wait a minute, where the hell this length property came. You guessed it right, it’s an object. An array is actually an object of Javascript (it’s readymade). Indexes and length are properties of array object.

What if I do myArray[0]. We get 100.

And what if I do myArray[“0”]. We will get the same 100. People who know object oriented javascript know that [“<propertyName>”] is another way of accessing property. So, this also proves that arrays are objects. But if it is object, the why not use indexes in dot(.) notation like myArray.0. Wrong, if property happens to be number data-type then we cannot use dot(.) notation instead we will have to use square bracket([]) notation. But wait a minute here we are accesing values as myArray[0], type coercion comes into action internally Javascript converts myArray[0] to myArray[“0”].

Let’s see some more magic. For the above array of length 3 what if I do,

myArray[400]="anoop";

Since objects in Javascript is free form, so no problem here, you can put anything of anything type. But, what will be the length of array here, ideally it should be 4 but it prints 401. Actually Javascript arrays for length property value it adds 1 to the last index. Strange!

You can also do,

myArray["anoop"]="rai";

Again, length will be same 401. And, do not worry about index like objects property names can also be of string type.

About Anoop Kumar Rai