Original JavaScript
Original JavaScript
Original JavaScript
Original JavaScript
Original JavaScript
Original JavaScript

[1] Interpreted as either true or false means this: In Scheme, there are two distinguished values that are denoted by the constants #t and #f. When the interpreter checks a predicate's value, it interprets #f as false. Any other value is treated as true. (Thus, providing #t is logically unnecessary, but it is convenient.) In this book we will use names true and false, which are associated with the values #t and #f respectively.
[2] Conditionals in full JavaScript accept any value, not just a boolean, as the result of evaluating the $predicate$ expression (see footnote 1 in section 4.1.3 for details). The programs in this book use only boolean values as predicates of conditionals.
[3] Abs also uses the minus operator -, which, when used with a single operand, as in (- x), indicates negation.
[4] A minor difference between if and cond is that the $\langle e \rangle$ part of each cond clause may be a sequence of expressions. If the corresponding $\langle p \rangle$ is found to be true, the expressions $\langle e \rangle$ are evaluated in sequence and the value of the final expression in the sequence is returned as the value of the cond. In an if expression, however, the $\langle \textit{consequent}\rangle$ and $\langle \textit{alternative}\rangle$ must be single expressions.
[5] For now, we restrict these operators to number arguments. In sections 2.3.1 and 3.3.1, we shall generalize the equality and inequality predicates === and !==.
[6] Syntactic forms that are simply convenient alternative surface structures for things that can be written in more uniform ways are sometimes called syntactic sugar, to use a phrase coined by Peter Landin.
1.1.6   Conditional Expressions and Predicates