[1]
Observe that there are two different operations being combined here: we are creating the function, and we are giving it the name square. It is possible, indeed important, to be able to separate these two notions—to create functions without naming them, and to give names to functions that have already been created. We will see how to do this in section 1.3.2.
[2]
Throughout this book, we will describe the general syntax of expressions by using italic symbols—e.g., $name$—to denote the slots in the expression to be filled in when such an expression is actually used.
[3]
More generally, the body of the function can be a sequence of statements. In this case, the interpreter evaluates each statement in the sequence in turn until a return statement determines the value of the function application.
[4]
The way multi-part names such as sum_of_squares are written affects the readability of programs, and programming communities differ on this. According to the common JavaScript convention, called camel case, the name would be sumOfSquares. The convention used in this book is called snake case, and was chosen for its closer resemblance to the convention used in the Scheme version of this book, where hyphens play the role of our underscores.
[5]
Our JavaScript environment includes all functions and constants of ECMAScript's Math object, under the names math_$\ldots$. For example, ECMAScript's Math.log is available as math_log. The MIT Press web page for this book includes the JavaScript package sicp that provides these and all other JavaScript functions that are considered primitive in the book.
1.1.4  
Compound Functions