Operators
Your knowledge of JavaScript operators sets you up perfectly for
C/Objective-C operators. A few JavaScript operators don’t apply (function(), typeof, void,
and delete), but the rest are in play
and with the same general precedence rules.
You do need to be cautious when applying your knowledge of JavaScript comparison operators to Objective-C. JavaScript attempts to find common ground in comparing string and numeric values. For example, consider the following JavaScript function:
function comparisonTest() {
fiveString = "5";
fiveNumber = 5;
return fiveString == fiveNumber;
}Even though the == equality
comparison operator compares a number against a string, JavaScript returns
true for this function. Only by
substituting the strictly equals operator (===) would the value types be taken into account
(in which case the function returns false). In Objective-C, such disparate value
types would never be considered to be equal. But numeric types are not as
strict, so the integer 5 and the float 5.00, for example, are considered
equal.
The C language adds typecasting as an operation to take into account
when determining how an expression evaluates. Typecasting (e.g.,
converting a float to an integer by preceding the integer’s value with
(float)) has a high precedence, ahead
of common arithmetic operators. This allows a value to be cast into the
desired type before math operations apply to the value.
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access