因为觉得现在的工作没有任何提升,反而是啃老本,所以现在又开始找工作,在面试的时候总是被基础知识刷下来,想想觉得真的不能每次都靠运气,被别人挑剩下,还是要老老实实打好基础,现在记录下一些难懂得知识点,不定期更新,学习的阮一峰老师的教程
第一个:递归
章节:1.3圆括号运算符,return 语句和递归
function fib(num) {
if (num === 0) return 0;
if (num === 1) return 1;
return fib(num - 2) + fib(num - 1);
}
fib(6) // 8
一直无法理解为什么最后等于8,通过网上寻找,才知道原因,参考来源: 使用递归,计算斐波那契数列
运行过程:
- return fib(4)+fib(5)
- return fib(2)+fib(3)+fib(3)+fib(4)
- return 1+fib(1)+fib(2)+fib(1)+fib(2)+fib(2)+fib(3)
- return 1+1+1+1+1+1+fib(1)+fib(2)
- return 1+1+1+1+1+1+1+1=8
最终结果为8
第二个:提升
章节:1.5函数名的提升
f();
var f = function (){}; // TypeError: undefined is not a function
// TODO:上面的代码等同于下面的形式。
var f;
f();
f = function () {};
之前一直知道变量提升,刚看,原来函数名也是会提升,但当采用赋值语句定义函数就会报错,如果同时采用function命令和赋值语句声明同一个函数,最后总是采用赋值语句的定义
网友评论