[1]
Assignment introduces a subtlety into step 1 of the evaluation rule. As shown in exercise , the presence of assignment allows us to write expressions that will produce different values depending on the order in which the subexpressions in a combination are evaluated. To eliminate such ambiguities, JavaScript specifies left-to-right evaluation of the subexpressions of combinations and of the argument expressions of applications.
[2]
Footnote undefined in chapter 1 mentions subtle differences between the two in full JavaScript, which we will ignore in this book.
[3]
We mentioned in footnote undefined in chapter 1 that the full JavaScript language allows assignment to names that are declared with function declarations.
[4]
This example does not make use of the fact that the parameter x is a variable, but recall the function make_withdraw in section 3.1.1, which relied on its parameter being a variable.
3.2.1  
The Rules for Evaluation