在sicp-in-js这本书中,给出了下面的条件判断表达式:
predicate
? consequent-expression
: alternative-expression
此表达式更加有利于思考,完全撇开了if-else等语句:
> function fib2(next, current, n) {
... return n === 0
... ? current
... : fib2(next current, next, n-1);
... }
undefined
> fib2(1,0, 9)
此时,用predicate取代if和else等更能有效地组织大脑的思考。
> function fib(n) {
... return n === 0
... ? 0
... : n === 1
... ? 1
... : fib(n-1) fib(n-2);
... }
undefined
> fib(11)
89
> fib(9)
34
,