この再帰呼び出しがどのように機能するかわかりません。再帰呼び出しで not 演算子を使用すると、この関数は、与えられた引数が奇数か偶数かを判断します。'!' fn(2) と fn(5) は両方とも true を返します。
この例は、JavaScript Allonge free e-bookから抜粋したもので、これまでのところ優れています。
var fn = function even(n) {
if (n === 0) {
return true;
}
else return !even(n - 1);
}
fn(2); //=> true
fn(5); //=> false