使用递归 和 &&
&& 特性:如果左边为 false,不执行右边; 左边为true继续执行右边。
传入 n
return n && n + (n-1) => n + (n-1)
return 1 && n + (n-1) + ... + 1 => n + (n-1) + ... + 1
return 0 && 不执行
最后得到的结果: n + (n-1) + ... + 1
var sumNums = function(n){
return n && (n + sumNums(n-1))
};