- 递归基础
- 纯递归实现斐波那契数列
- 递归+includes实现斐波那契数列
- 循环+解构实现斐波那契数列
- alert
- Number
- includes
- 相关链接
代码
function fun(n) { // 退出条件 if(n === 1) return 1; return n * fun(n - 1); } console.log(fun(3)); // 6
实现思路
return 3 * fun(2); return 3 * (2 * fun(1)); return 3 * (2 * 1); 6 最后的return需等待fn递归结束才执行 递归函数必须添加退出条件
纯递归实现斐波那契数列function fibonacciSequenceRecursion(n) { n = Number(n); if (!n) return alert('请正确输入值'); if (n == 1 || n == 2) return 1; return fibonacciSequenceRecursion(n - 2) + fibonacciSequenceRecursion(n - 1); } console.log(fibonacciSequenceRecursion(7)); // 13递归+includes实现斐波那契数列
function fibonacci(n) { n = Number(n); // 退出条件 if([1, 2].includes(n)) return 1; return fibonacci(n - 1) + fibonacci(n - 2); } console.log(fibonacci(6)); // 8循环+解构实现斐波那契数列
function fibonacciSequenceFor(n) { n = Number(n); if (!n) return alert('请正确输入值'); if (n <= 2) return 1; let a = 1, b = 1; for (let i = 2; i < n; i++) [a, b] = [b, a + b]; return b; } console.log(fibonacciSequenceFor(8)); // 21alert
MDN
window.alert()令浏览器显示一个带有可选的信息的对话框,并等待用户离开该对话框。 在某些情况下(例如,当用户切换标签时)浏览器可能不会实际显示一个对话框,或者不等待用户离开对话框。
w3school
如果要确保信息传递给用户,通常会使用警告框。 当警告框弹出时,用户将需要单击“确定”来继续。
NumberMDN
Number值表示像37或-9.25这样的浮点数值。 Number构造函数包含常量和处理数值的方法。其他类型的值可以使用Number函数转换为数值。
w3school
Number函数将对象参数转换为表示对象值的数字。 如果该值无法转换为合法数字,则返回NaN。 如果参数是Date对象,则Number函数返回自UTC 1970年1月1日午夜以来的毫秒数。
includesMDN
includes方法用来判断一个数组是否包含一个指定的值,根据情况,如果包含则返回true,否则返回false。
w3school
includes方法确定数组是否包含指定的元素。 如果数组包含元素,则此方法返回true,否则返回false。 includes方法区分大小写。
相关链接1、来自CSDN的JavaScript写斐波那契数列的几种方式 2、来自博客园的JS写斐波那契数列的几种方法