Passing data by value means that the data itself is stored in the variable. Assigning one variable to another copies the value.
Changing the value in one variable leaves the other unaffected.
Non-object values (primitives) are generally passed in this manner.
Passing data by value to a function means that the function cannot affect the value outside the function since it only has a copy of the value to work on.