知识扩展
学习
- ES6:新版本JavaScript语言的标准
- TypeScript:是JavaScript的一个超集,本质上向这个语言添加了可选的静态类型和基于类的面向对象编程(类型批注、声明文件)
- Less、Scss:是一种动态样式语言. 对CSS赋予了动态语言的特性,如变量,继承,运算, 函数
- jQuery:是一个轻量级的"写的少,做的多"的JavaScript库
- React:专注视图层、虚拟 DOM、组件、函数式编程、单向数据流、JSX
- Redux:是 JavaScript 状态容器,提供可预测化的状态管理
- Ant Design:React UI 组件库
- Vue:简单小巧、渐进式技术栈、解耦视图与数据、虚拟 DOM、组件
- Vuex:一个专为 Vue.js 应用程序开发的状态管理模式。采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化
- Element:基于Vue 2.0的桌面端组件库
- Node.js:是一个基于 Chrome V8 引擎的 JavaScript 运行环境,使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效
- Webpack:现代 JavaScript 应用程序的静态模块打包器
- Express:是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用、移动应用、丰富的 HTTP 工具
- Fetch:足够取代 XHR ,并且提供了更多拓展的可能性
- Axios:是一个基于promise的HTTP库,可以用在浏览器和node.js中。支持取消请求、自动转换JSON数据、客户端支持防御XSRF
- WebSocket:一种网络通信协议,数据格式比较轻量,性能开销小,通信高效。可以发送文本和二进制数据。没有同源限制。属于服务器推送技术的一种
- Electron:构建跨平台桌面应用程序的一个开源库
- Git:分布式版本控制系统,旨在快速高效地处理从小型到大型项目的所有事务
- Svn:版本控制系统,采用了分支管理系统
- Web Components:创建可重用的定制元素(Custom elements(自定义元素)、Shadow DOM(影子DOM)、HTML templates(HTML模板)、HTML Imports(HTML导入))
扩展
- MVVM框架:Model(数据:Javascript对象),View(视图:DOM),ViewModel(通讯:观察者)
- 浏览器内核:IE:Trident、Safari:WebKit、Chrome:Chromium/WebKit、Opera:Blink/WebKit、Firefox:Gecko
- JS引擎:Chrome:V8
- CDN:内容分发网络
- SDK:软件开发工具包
- DNS:域名系统-根据域名查出IP地址
- SSR:服务端渲染,客户端渲染(CSR)
- 语法糖:对语言的功能并没有影响,但是更方便程序员使用。通常来说使用语法糖能够增加程序的可读性,从而减少程序代码出错的机会
- 图片懒加载:懒加载是一种对网页性能优化的方式,它的原理是优先加载在可视区域内的图片,而不一次性加载所有图片
- IIFE:立即执行函数表达式
- ajax轮询:让浏览器隔个几秒就发送一次请求,询问服务器是否有新信息
- long poll:采取的是阻塞模型。客户端发起连接后,如果没消息,就一直不返回Response给客户端。直到有消息才返回,返回完之后,客户端再次建立连接,周而复始
- PWA:渐进式webapp(Manifest实现添加至主屏幕、service worker实现离线缓存和消息推送)
计划
- ReactNative:只使用JavaScript也能编写原生移动应用
- Flutter:是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面
- AngularJS:可以使用HTML作为模板语言,并且可以通过指令扩展HTML语法,使应用组件更加清晰和简洁,通过数据绑定和依赖注入减少了大量代码
- Bootstrap:基于Less 和 Sass 开发的,通过同一份代码快速有效适配手机、平板、PC 设备,jQuery 插件
- SEO(搜索引擎)优化:是一种透过了解搜索引擎的运作规则来调整网站,以及提高目的网站在有关搜索引擎内排名的方式
- JWT(JSON WEB Token):是一种基于JSON的、用于在网络上声明某种主张的令牌(token)
- webRTC:一项实时通讯技术,它允许网络应用或者站点,在不借助中间媒介的情况下,建立浏览器之间点对点的连接,实现视频流或音频流或者其他任意数据的传输
- RxJs:是一个库,它通过使用observable 序列来编写异步和基于事件的程序
- Web Workers:为 JavaScript 创造多线程环境,允许主线程创建 Worker 线程,将一些任务分配给后者运行
- Service Workers:(代替离线缓存Application Cache)离线体验、后台同步、推送通知
- 微信小程序:提供了一个简单、高效的应用开发框架和丰富的组件及API,帮助开发者在微信中开发具有原生 APP 体验的服务
进阶
- 用户体验:性能优化策略、浏览器渲染原理、js引擎工作原理、交互的基本原则、浏览器http缓存的相关利用、用户操作容错率
- ES6(用ES5实现ES6)、TypeScript、Linux命令
- 服务端:NodeJS(上线部署、压力测试、微服务)、Nginx
- 框架:React、Vue、AngulaJS、三大框架SSR原理与传统SSR对比(node中间层,nuxt,next)、微前端架构设计、数据状态管理框架(Redux、Vuex)
- 移动端:ReactNative、Flutter、Electron
- 工程化:Webpack(配置、核心原理、开发优化)、Eslint、gulp、npm、yarn、编写性能与容错线上监控平台
- 设计模式:
- 网络安全:
- 前端图形学:three cocos canvas
- Serverless(无服务器架构)
- 算法+数据结构:高时间复杂度和常见运行时(如O(N)和O(N Log N)的基本知识 冒泡排序、快速排序
- 监控工具