You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
var age = 7;
function addOne (x) {
x = x +1;
}
addOne(age);
document.write(age);
I'm gonna break this down the way I have understood.
So, we have a function called addOne which adds 1 to the value it accepts, right?
And then we call the function with an argument of the value 7. So, now the function adds 1 to 7 and age is 8.
But why is it that when I print out the value of age, it prints out 7 ??
That's because JavaScript uses "pass by value". That means the value 7 gets copied into the variable x. You increase the variable x, but that doesn't change the value of age because they are two different variables.
If you want to change the value of age, you'd write it like this:
var age = 7;
function addOne(x) {
x = x + 1;
return x;
}
age = addOne(age);
document.write(age);
Here, if we return the value of x (which is now 8), and store that new value in age, then age will be 8. Do you see the difference?
Activity
bethrobson commentedon Jul 21, 2015
Hi adityathebe,
That's because JavaScript uses "pass by value". That means the value 7 gets copied into the variable x. You increase the variable x, but that doesn't change the value of age because they are two different variables.
If you want to change the value of age, you'd write it like this:
Here, if we return the value of x (which is now 8), and store that new value in age, then age will be 8. Do you see the difference?
Review page 92 again.
Hope that helps!
adityathebe commentedon Jul 22, 2015
Thank you. I'm really loving your book !!