JavaScript进阶实战课--极客时间课程推荐/优惠
版权声明
本站非极客时间官网,与官方无任何关系。我们不提供课程下载或详细内容,仅作为课程分享和推荐平台。我们鼓励大家支持正版,尊重创作者的劳动成果,这样不仅能帮助创作者持续产出优质内容,也能让自己获得更好的学习体验。请通过官方渠道购买和学习课程,感谢您的理解与支持。
课程详情
你将获得:
- 以终为始:透过核心编程模式看编程本质;
- 实战驱动:剖析JavaScript算法和设计模式;
- 开发提效:总结常用工具使用技巧与原理;
- 前沿视野:洞察语言及应用变化趋势。
课程介绍
现在,JavaScript早已不是当年的一个脚本语言,随着Web应用和Node.js的兴起、函数式编程的复兴,以及响应式编程开始进入人们视野,让JavaScript看上去更“专业”了。虽然和十几年前相比较,JavaScript也加入了很多功能和语法糖,但是它的核心原理并没有太大变化。
可即使没有太多本质上的变化,JavaScript也仍然具有容易入门但难以进阶的问题。
造成这个问题的原因主要有两个:一是早期写JavaScript的很多程序员的编程基础并不扎实,知识点很杂,导致大家对JS的理解不够深入;二是后来入局的一些大咖,很多都是从其它语言转来的,他们认为一些知识没法分享和讲解。
这就使得JavaScript的开发者两极分化很严重,一部分一直停留在入门级,一部分出道即巅峰。
所以,我们邀请了JavaScript Patterns and Anti-Patterns等开源项目的创建者石川老师,来帮你化解学习难题。石川设计这门课的初衷,就是让学习JavaScript的你,能够对这个一开始比较不那么“专业”的语言,有一个系统的专业理解。帮助你一步一个脚印,把点连成线,把线连成面,把面搭建起一座空间立体的“思维大厦”。
此外,石川在课程中还总结了学习JavaScript的三大痛点,并据此来设计课程,让你能通过对底层原理和实践经验的理解,达成融会贯通的目的,从而实现突破JavaScript语言应用进阶的目标。
课程模块设计
课程分为五个模块。
- JavaScript之道
课程首先从函数式和面向对象的编程模式开始讲起,毕竟其中一些核心概念或元认知即使不是恒久不变,也至少是到目前为止,经受住了时间考验的核心理论和实践。当你理解和掌握了这两类核心编程范式之后,你就知道要如何结合JavaScript的特性进行取长补短了,也能够因地制宜地解决实际问题了。
- JavaScript之法
学习JavaScript的底层逻辑和所用到的数据结构与算法,以此帮助你写出更高效的代码。课程会从大量的开源项目等案例出发,带你了解、学习和掌握JS引擎及浏览器在编译和运行时的一些特点,帮助你达成对这些知识点的真正理解,最后能够融会贯通。这样你在使用JS的一些功能,如排序或者做代码优化的时候,就能够更好地抓住重点,管理预期。
- JavaScript之术
在理解了JavaScript的数据结构与算法之后,还要来看看它用到的设计模式。这个部分其实是前面JS编程模式的延续,课程会结合一些三方的库,来帮你理解和掌握如何通过设计模式进一步提高“生产力”,优化“生产关系”。
- JavaScript之器
通过工具的有效使用,可以减少重复的工作,帮助提高开发质量和效率。因此在这个模块中,依然是从案例出发,来了解、学习JavaScript中的常用工具及其背后的使用原理、使用场景,让你能够通过对原理和实践经验的理解,更好地为开发赋能。
- JavaScript之势
我们说唯一不变的就是变化本身,通过前面对JavaScript知识体系的系统性理解,最后也来看看前端一些新的技术趋势,了解下这些变化和趋势会对我们产生哪些影响,以此进一步巩固知识体系,进阶为一名JavaScript语言应用强者。
课程目录
开篇词
- 开篇词 | JavaScript的进阶之路
JavaScript之道
- 01 | 函数式vs.面向对象:响应未知和不确定
- 02 | 如何通过闭包对象管理程序中状态的变化?
- 03 | 如何通过部分应用和柯里化让函数具象化?
- 04 | 如何通过组合、管道和reducer让函数抽象化?
- 05|map、reduce和monad如何围绕值进行操作?
- 06 | 如何通过模块化、异步和观察做到动态加载?
- 07 | 深入理解对象的私有和静态属性
- 08|深入理解继承、Delegation和组合
- 09|面向对象:通过词法作用域和调用点理解this绑定
JavaScript之法
- 10|JS有哪8种数据类型,你需要注意什么?
- 11|通过JS引擎的堆栈了解闭包原理
- 12|JS语义分析该用迭代还是递归?
- 13 | JS引擎如何实现数组的稳定排序?
- 14 | 通过SparkPlug深入了解调用栈
- 15 | 如何通过哈希查找JS对象内存地址?
- 16 | 为什么环形队列适合做Node数据流缓存?
- 17 | 如何通过链表做LRU/LFU缓存?
- 18 | TurboFan如何用图做JS编译优化?
- 19 | 通过树和图看如何在无序中找到路径和秩序
- 20 | 算法思想:JS中分治、贪心、回溯和动态规划
JavaScript之术
- 21 | 创建型:为什么说Redux可以替代单例状态管理
- 22|结构型:Vue.js如何通过代理实现响应式编程
- 23 | 结构型:通过jQuery看结构型模式
- 24 | 行为型:通过观察者、迭代器模式看JS异步回调
- 25 | 行为型:模版、策略和状态模式有什么区别?
- 26|特殊型:前端有哪些处理加载和渲染的特殊“模式”?
- 27|性能:如何理解JavaScript中的并行、并发?(上)
- 28|性能:如何理解JavaScript中的并行、并发?(下)
- 29|性能:通过Orinoco、Jank Busters看垃圾回收
- 30|网络:从HTTP/1到HTTP/3,你都需要了解什么?
- 31|安全:JS代码和程序都需要注意哪些安全问题?
JavaScript之器
- 32|测试(一):开发到重构中的测试
- 33|测试(二):功能性测试
- 34|测试(三):非功能性测试
- 35|静态类型检查:ESLint语法规则和代码风格的检查
- 36|Flow:通过Flow类看JS的类型检查
- 37|包管理和分发:通过NPM做包的管理和分发
- 38|编译和打包:通过Webpack、Babel做编译和打包
- 39|语法扩展:通过JSX来做语法扩展
- 40|Polyfill:通过Polyfill让浏览器提供原生支持
JavaScript之势
- 41|微前端:从MVC贫血模式到DDD充血模式
- 42|大前端:通过一云多端搭建跨PC/移动的平台应用
- 43|元编程:通过Proxies和Reflect赋能元编程
结束语
- 结束语|JavaScript的未来之路:源于一个以终为始的初心
- 期末测验|来赴一场100分之约!
- 特别加餐|当JS遇到AIGC,会碰撞出什么样的火花?