背景介绍
作为一名前端工程师,JavaScript 你一定每天都在用。但是,JavaScript 有诸多复杂微妙的机制,重复机械地使用无法转化成进阶经验,很多前端开发对其的掌握程度仅仅停留在会用的层面,面试常常挂在语言的内部实现原理上。
对于前端工程师来说,精通 JavaScript 不仅可以助力眼前的面试,同时,对其的掌握程度也决定了你未来技术发展的上线,扎实的 JavaScript 基础可以帮助你从容应对新技术、新框架。
专栏解读
专栏分为 4 大模块,共 22 篇,结合 JavaScript 代码经典面试题目和实操案例,带你深度挖掘原生 JavaScript 底层原理,构建完整的原生 JavaScript 知识体系,进而提升编码能力。
基石篇
专栏深入讲解 JavaScript 数据类型、继承、闭包等核心基础知识并分析其底层原理。这是构建前端工具的基础内容,也是编码能力的基石。其中涉及的知识点,比如深浅拷贝和实现 JSON.Stringfy ,是大厂面试官经常会问到的考点,本专栏将以进阶练习的形式带你轻松掌握。
深入数组 & API 原理篇
在日常开发中,数组是经常会用到的数据类型,使用和出现频率非常之高。本模块将从数组原理、数组排序两大方向带你了解数组,其中会涉及梳理数组 API、实现数组扁平化,以及数组 sort 方法。掌握这部分知识,无需去翻 JS 数组相关的文档,就可以轻松厘清前端业务逻辑、快速处理数组数据,提升你的开发效率。
异步编程篇
异步编程在浏览器端非常重要,浏览器端比较耗时的操作都需要进行异步操作来减少等待时间。
本模块会从 JavaScript 的异步编程方式讲起,深入研究 Promise、Async/await 以及 Co 等异步编程的方式,探究 JavaScript 异步编程源码精髓,让你摆脱前端代码的回调地狱,更优雅地实现并解决业务场景的复杂问题、提升页面性能。
V8 引擎篇
浏览器核心引擎 V8 是执行 JavaScript 代码的程序或解释器。它可以使 JS 的执行性能大幅提升,也是目前大多数浏览器普遍使用的引擎。这一模块通过对浏览器垃圾回收机制、浏览器核心引擎的工作逻辑等内容的讲解,帮助你理解 JavaScript 代码是如何被 V8 引擎编译和执行的。这对于写出高性能的 JavaScript 代码有着很好的帮助。
彩蛋
最后专栏会为你剖析互联网大厂的面试题目,带你了解互联网大厂的职级体系和面试定级标准,梳理面试思路和前端知识的学习方法,实现自身的突破和提升。
*此外,专栏的每一个模块都会用 1~2 讲带你实操,比如实现一个 JSON.Stringfy 方法、实现一个 EventEmitter、手写 JS 数组多个 API 的底层实现。及时地巩固练习,会为你带来事半功倍的效果。
讲师简介
若离 前美团前端技术专家
曾负责和参与过美团多个业务(到家、团购及电影业务)的前端研发及团队搭建,致力于前端性能优化、质量保证、效率提升、跨端融合等方向的研究,并且都有一定的技术落地,得到了超出预期的结果。
现在某大厂负责前端、中台业务以及跨端平台的核心研发。目前,致力于带领团队探索跨端技术上以及向全栈方向发展。
持续为公司进行前端岗位的社招、校招面试近 6 年多,面试候选人近千人,深谙大厂面试套路及定级之道。
课程目录:
├──文档
| ├──[6173] 开篇词 打好 JS 基石,走稳前端进阶之路.md 10.88kb
| ├──[6174] 01 代码基本功测试(上):JS 的数据类型你了解多少?.md 54.46kb
| ├──[6175] 02 代码基本功测试(下):如何实现一个深浅拷贝?.md 44.11kb
| ├──[6176] 03 继承实现:探究 JS 常见的 6 种继承方式.md 32.49kb
| ├──[6177] 04 继承进阶:如何实现 new、apply、call、bind 的底层逻辑?.md 40.15kb
| ├──[6178] 05 函数那些事:JS 闭包难点剖析.md 27.45kb
| ├──[6179] 06 进阶练习:带你一起实现 JSON.Stringify 方法.md 24.24kb
| ├──[6180] 07 数组原理(上):帮你梳理眼花缭乱的数组 API.md 44.51kb
| ├──[6181] 08 数组原理(中):如何理解 JS 的类数组?.md 22.87kb
| ├──[6182] 09 数组原理(下):实现数组扁平化的 6 种方式.md 16.83kb
| ├──[6183] 10 数组排序(上):如何用 JS 实现各种数组排序?.md 25.50kb
| ├──[6184] 11 数组排序(下):ort 排序方法的实现原理.md 20.19kb
| ├──[6185] 12 进阶练习:带你手写 JS 数组多个方法的底层实现.md 22.46kb
| ├──[6186] 13 异步编程(上):JS 异步编程都有哪些方案?.md 16.13kb
| ├──[6187] 14 异步编程(中):如何深入理解异步编程的核心 Promie?.md 24.17kb
| ├──[6188] 15 异步编程(下):如何理解 Generator、Ayncawait 等异步编程的语法糖?.md 23.50kb
| ├──[6189] 16 进阶练习(上):怎样轻松实现一个 EventEmitter?.md 23.70kb
| ├──[6190] 17 进阶练习(下):如何实现符合 PromieA+ 规范的 Promie?.md 36.73kb
| ├──[6191] 18 垃圾回收:释放内存,提升浏览器页面性能.md 17.93kb
| ├──[6192] 19 事件轮询:如何理解浏览器中的 EventLoop?.md 18.74kb
| ├──[6193] 20 原理解析:JS 代码是如何被浏览器引擎编译、执行的?.md 20.26kb
| ├──[6194] 21 引擎进阶(上):探究宏任务 & 微任务的运行机制.md 18.20kb
| ├──[6195] 22 引擎进阶(下):如何理解 Proce.nextTick 的原理?.md 25.70kb
| ├──[6196] 彩蛋 1 如何应对大厂面试官的灵魂拷问?.md 9.70kb
| ├──[6197] 彩蛋 2 前端开发如何有针对性地学习算法?.md 28.98kb
| └──[6198] 结束语 面向未来,我们该如何提升自己?.md 7.31kb
├──[6173] 开篇词 打好 JS 基石,走稳前端进阶之路.mp4 110.51M
├──[6174] 01 代码基本功测试(上):JS 的数据类型你了解多少?.mp4 174.86M
├──[6175] 02 代码基本功测试(下):如何实现一个深浅拷贝?.mp4 189.56M
├──[6176] 03 继承实现:探究 JS 常见的 6 种继承方式.mp4 158.92M
├──[6177] 04 继承进阶:如何实现 new、apply、call、bind 的底层逻辑?.mp4 155.69M
├──[6178] 05 函数那些事:JS 闭包难点剖析.mp4 153.05M
├──[6179] 06 进阶练习:带你一起实现 JSON.Stringify 方法.mp4 119.82M
├──[6180] 07 数组原理(上):帮你梳理眼花缭乱的数组 API.mp4 212.87M
├──[6181] 08 数组原理(中):如何理解 JS 的类数组?.mp4 120.91M
├──[6182] 09 数组原理(下):实现数组扁平化的 6 种方式.mp4 93.90M
├──[6183] 10 数组排序(上):如何用 JS 实现各种数组排序?.mp4 140.04M
├──[6184] 11 数组排序(下):ort 排序方法的实现原理.mp4 117.57M
├──[6185] 12 进阶练习:带你手写 JS 数组多个方法的底层实现.mp4 70.46M
├──[6186] 13 异步编程(上):JS 异步编程都有哪些方案?.mp4 101.95M
├──[6187] 14 异步编程(中):如何深入理解异步编程的核心 Promie?.mp4 115.24M
├──[6188] 15 异步编程(下):如何理解 Generator、Ayncawait 等异步编程的语法糖?.mp4 126.64M
├──[6189] 16 进阶练习(上):怎样轻松实现一个 EventEmitter?.mp4 114.31M
├──[6190] 17 进阶练习(下):如何实现符合 PromieA+ 规范的 Promie?.mp4 140.17M
├──[6191] 18 垃圾回收:释放内存,提升浏览器页面性能.mp4 145.11M
├──[6192] 19 事件轮询:如何理解浏览器中的 EventLoop?.mp4 168.04M
├──[6193] 20 原理解析:JS 代码是如何被浏览器引擎编译、执行的?.mp4 145.45M
├──[6194] 21 引擎进阶(上):探究宏任务 & 微任务的运行机制.mp4 140.26M
├──[6195] 22 引擎进阶(下):如何理解 Proce.nextTick 的原理?.mp4 129.11M
├──[6196] 彩蛋 1 如何应对大厂面试官的灵魂拷问?.mp4 100.95M
├──[6197] 彩蛋 2 前端开发如何有针对性地学习算法?.mp4 131.31M
├──[6198] 结束语 面向未来,我们该如何提升自己?.mp4 96.35M
└──课程列表信息.txt 3.33kb