我早就知道:学习掌握一方面的知识类似(不可能这么完美)一个对数增长的过程,刚开始或许在一定的时间内进步很快;但是越往后,我们想取得像之前那样感官上的进步,付出的时间十分有可能是指数级别的增长。
我把整个JavaScript想象成了一个一环套一环的实体圆柱
当刚开始学习的时候,花费很短(两天)的时间学习了一点知识就能把一个圆柱凿出一个空心,产生感觉上的巨大进步(API阶段)。
接下来,我们可能又花费了十倍(十几天)甚至更长的时间,把圆心外面的那一层圆环凿了个三三四四(闭包,柯里化,惰性函数),花费心力巨大...
于是,就休息了几天,回过神来打算打起精神继续努力,可是定睛一看,怎么圆环自己修复了(忘记了),竟然连对数曲线都算不上...
隔了很久(工作一年)以后,在一些人和书籍的帮助下,我终于凿透凿干净了js的第二,第三层圆环,回过头来猛然发现,原来之前的自己的表现多么像一只无头苍蝇,每一层圆环都有一个必须先破掉的点,然后按照一定的顺序就可以保持对数曲线的增长。
就比如,想要真的理解闭包,就要首先知道堆栈内存,知道作用域;想要学好构造函数,学好class,弄懂设计模式,他们的必要条件就是面向对象的基本认知。
如果早有人帮我该多好。
如果你也是像刚开始的我一样,感觉自己像一个无头苍蝇一样突破无门,我觉得你可以赏个脸停下来看看我整理的这些笔记,或许能给你一些启发。
ps:我是一个没有天分的前端小渣,这些路径也不是我想出来的,我只是一个整理笔记的学生。欢迎那些像我一样基础薄弱的友好的同学查看我的笔记。祝,咱们一起学习成长!
题外话:学习是对数增长曲线,但是学习带来的工资成长可不是一个对数曲线,很有可能是线性曲线哦!而且学习不一样的东西,映射到现实之中所带来的影响也都大不一样,如果学习的不是技术知识,而是理财投资类的知识,所带来的金钱上的改变很可能是指数级别的增长或塌陷(就如我今年,先增长后塌陷,哈哈哈)
- 堆栈内存和闭包作用域
- 1、九种数据类型(基础)
- 2、堆栈内存和js底层运行机制
- 3、题解闭包
- 4、变量提升的处理机制
- 5、this指向的五种不同情况
- 6、let和const的区别,块级上下文产生的几种情况
- 7、循环事件绑定的N中解决方法(循环事件绑定)
- 8、剖析parseInt的处理机制
- 9、js高阶编程技巧
- 10、函数的防抖,节流(未整理)
- 面向对象
- 1、面向对象编程
- 2、对象的共有私有属性及遍历(知识点不全)
- 3、原型和原型链
- 4、原型重定向
- 5、内置类上的方法(包含自定义原型方法的方法)
- 6、Object和Function到底谁大?
- 7、鸭子类型
- 8、浅析call、apply、bind
- 9、重写内置new
- 10、重写内置call和bind
- 11、js检测数据类型的四种方法
- 12、js中4大继承方案(待整理)
- 12、模仿JQ封装一系列检测数据的方法及封装自己的js类库的简单总结
- 同步异步编程
- 1、js的同步异步和EvenLoop
- 2、setTimeout(宏任务之一:浅析原理)
- 3、promise基础
- 4、异步函数async、await
- DOM事件
- 事件和事件绑定(待整理)
- 事件对象和阻止默认行文(待整理)
- 事件的传播机制(待整理)
- BOM
- 前端性能优化(xmind)
- 1、
- 2、http通信层优化(基于CRP思想)
- 2.1、前端需要懂得的一点http报文知识
- 2.2、浏览器缓存
- 2.3、HTTP1.0vs1.1vs2.0
- 3、浏览器渲染优化(基于CRP思想)
- 设计模式
- 单例模式(待整理)
- 命令模式(待整理)
- 工厂模式(待整理)
- 观察者模式(待整理)
- 中介者模式(待整理)
- 发布订阅模式(待整理)
- 正则(待学习)