Data is stored at memory locations. When the data in a varible (say x=1) the value (1 in this case) is stored into memory directly. This is Store-By-Value. When the data is stored by reference, the address at which the value is stored (the location where 1 is stored) is the value stored into the variables memory location. var a=1 in memory a:memory location=1 var a = new Array(1,2) in memory a:pointer to memory location where 1 and 2 are located.