项目作者: spiderT
项目描述 :
tt-blog
高级语言: JavaScript
项目地址: git://github.com/spiderT/tt-blog.git
TT’note
学习总结
dart
Dart 是一种针对客户优化的语言,可在任何平台上开发快速的应用程序。其目标是为多平台开发提供最高效的编程语言,并为应用程序框架搭配了 灵活的运行时执行平台。Dart 也是 Flutter 的基础。 Dart 作为 Flutter 应用程序的编程语言,为驱动应用运行提供了环境,同时 Dart 还支持许多核心的开发任务,例如格式化,分析和代码测试。
flutter
Flutter 是 Google 开源的应用开发框架,仅通过一套代码库,就能构建精美的、原生平台编译的多平台应用。
- 快速: Flutter 代码可以直接编译成 ARM 或 Intel 平台的机器代码,以及 JavaScript 代码,确保了 Flutter 应用能够拥有原生平台的性能表现。
- 多平台支持: 部署到多种设备,只需要一份代码库,支持移动、网页、桌面和嵌入式设备。
webrtc
WebRTC (Web Real-Time Communications) 是一项实时通讯技术,它允许网络应用或者站点,在不借助中间媒介的情况下,建立浏览器之间点对点(Peer-to-Peer)的连接,实现视频流和(或)音频流或者其他任意数据的传输。WebRTC 包含的这些标准使用户在无需安装任何插件或者第三方的软件的情况下,创建点对点(Peer-to-Peer)的数据分享和电话会议成为可能。
electron
使用 JavaScript,HTML 和 CSS 构建跨平台的桌面应用程序
Webgl && threejs
WebGL(Web 图形库)是一个 JavaScript API,可在任何兼容的 Web 浏览器中渲染高性能的交互式 3D 和 2D 图形,而无需使用插件。WebGL 通过引入一个与 OpenGL ES 2.0 非常一致的 API 来做到这一点,该 API 可以在 HTML5
Three.JS是基于WebGL的Javascript开源框架,是能够实现3D效果的JS库。利用Three.JS可以制作出很多酷炫的3D动画,并且Three.js还可以通过鼠标、键盘、拖拽等事件形成交互,在页面上增加一些3D动画和3D交互可以产生更好的用户体验。
chrome-extension
Chrome Extension 是 Chrome 浏览器的扩展,也就是『插件』。Chrome 插件其实就是运用 Web 技术开发的能增强 Chrome 功能的软件。
harmonyos
HarmonyOS是一款面向万物互联时代的、全新的分布式操作系统。在传统的单设备系统能力基础上,HarmonyOS提出了基于同一套系统能力、适配多种终端形态的分布式理念,能够支持手机、平板、智能穿戴、智慧屏、车机、PC、智能音箱、耳机、AR/VR眼镜等多种终端设备,提供全场景(移动办公、运动健康、社交通信、媒体娱乐等)业务能力。
selenium
一套web自动化测试工具.
GraphQL
一种用于 API 的查询语言, GraphQL 既是一种用于 API 的查询语言也是一个满足你数据查询的运行时。 GraphQL 对你的 API 中的数据提供了一套易于理解的完整描述,使得客户端能够准确地获得它需要的数据,而且没有任何冗余,也让 API 更容易地随着时间推移而演进,还能用于构建强大的开发者工具。
IOT
物联网(Internet of Things,简称IoT)是指通过各种信息传感器、射频识别技术、全球定位系统、红外感应器、激光扫描器等各种装置与技术,实时采集任何需要监控、 连接、互动的物体或过程,采集其声、光、热、电、力学、化学、生物、位置等各种需要的信息,通过各类可能的网络接入,实现物与物、物与人的泛在连接,实现对物品和过程的智能化感知、识别和管理。物联网是一个基于互联网、传统电信网等的信息承载体,它让所有能够被独立寻址的普通物理对象形成互联互通的网络.
数据结构与算法
10 个数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie 树;
10 个算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法。
Kubernetes
kubernetes 概述. Kubernetes是Google开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。
Kafka
Kafka 是一种分布式的,基于发布 / 订阅的消息系统。主要设计目标如下:
以时间复杂度为 O(1) 的方式提供消息持久化能力,即使对 TB 级以上数据也能保证常数时间复杂度的访问性能。
高吞吐率。即使在非常廉价的商用机器上也能做到单机支持每秒 100K 条以上消息的传输。
支持 Kafka Server 间的消息分区,及分布式消费,同时保证每个 Partition 内的消息顺序传输。
同时支持离线数据处理和实时数据处理。
Scale out:支持在线水平扩展。
WebAssembly
WebAssembly 是一种新的编码方式,可以在现代的网络浏览器中运行 - 它是一种低级的类汇编语言,具有紧凑的二进制格式,可以接近原生的性能运行,并为诸如 C / C ++等语言提供一个编译目标,以便它们可以在 Web 上运行。它也被设计为可以与 JavaScript 共存,允许两者一起工作。
Java
Java是一门面向对象的编程语言。
Python
Python 是一种解释型、面向对象、动态数据类型的高级程序设计语言。
TensorFlow
TensorFlow是一个端到端开源机器学习平台。它拥有一个全面而灵活的生态系统,其中包含各种工具、库和社区资源,可助力研究人员推动先进机器学习技术的发展。
Rust
Rust 语言是一种高效、可靠的通用高级语言。其高效不仅限于开发效率,它的执行效率也是令人称赞的,是一种少有的兼顾开发效率和执行效率的语言。
- 高性能 - Rust 速度惊人且内存利用率极高。由于没有运行时和垃圾回收,它能够胜任对性能要求特别高的服务,可以在嵌入式设备上运行,还能轻松和其他语言集成。
- 可靠性 - Rust 丰富的类型系统和所有权模型保证了内存安全和线程安全,让您在编译期就能够消除各种各样的错误。
- 生产力 - Rust 拥有出色的文档、友好的编译器和清晰的错误提示信息, 还集成了一流的工具 —— 包管理器和构建工具, 智能地自动补全和类型检验的多编辑器支持, 以及自动格式化代码等等。
浏览器工作原理
oauth
根据设备主题网页换肤
webworker
网页性能分析
使用FFmpeg和WebAssembly实现前端视频转码
chrome 消息队列和事件循环
js 宏任务 微任务
http3
react fiber
webpack HMR
pwa
js函数式编程
nginx
opencv
源码学习
react、webpack、vite…
前端面试题
JS/TS
- 事件机制/Event Loop(进程,线程,协程,宏任务,微任务)
- 执行上下文/作用域链/闭包
- 原型/继承
- this/call/apply/bind/new
- 手写 Promise, Promise.all, Promise.race
- 手写async await
- 深浅拷贝
- 函数式编程
- Service Worker
- Web Worker
- ES6、ES7、ES8
- TypeScript相比js的优势
- TypeScript泛型
- interface
- TypeScript是如何编译的
- namespace和module
- 如何编写一个d.ts文件
面试题
- 手动实现防抖debounce、节流throttle
- node require 和 import 的区别
- arguments 是数组吗?如果不是,怎么转换成数组?
- 实现一个 add 方法,使计算结果能够满足如下预期: add(1)(2)(3) () add(1, 2, 3)(4)()
- 手写EventEmitter
- 关于异步任务执行的题目,涉及主线程任务、宏任务、微任务
- 变量提升,函数内 var 和 let 声明的执行结果各怎样
- 场景:从 1-10,按顺序每秒输出一个数字
- 浏览器是单进程吗?进行和线程的区别?
- 惰性求值
- ts class 里面怎么实现一个 runtime 里面访问不到 private 的属性
- 闭包的变量内存怎么分布的
- 协程与同步异步
- 什么时候传值,什么时候传变量
- promise 是如何实现链式调用的,为什么每次返回新 Promise, 像 jquery 那样直接返回 this 不行吗?
- 顺序延时输出数组里的每一项
- 在哪些情况下一个元素绑定的点击事件不会被触发
- 写了一个数据去重的算法
- 柯里化操作编程
- 页面中某个请求特别慢可能原因定位
- 如何采集错误
- 如何解决 window.onerror 监听跨 iframe 错误?
- async & defer
- 前端异步流的题:修改 Scheduler 类 add 方法,维护最大并发为两个
- 原型链实现对象的继承
- 上传文件的方法
- JS中函数参数值传递和引用传递
- 8.Instanceof的原理,如何实现
- 图片懒加载的方式
- 数组flat方法,以及参数
- This作用域
- 判断变量的类型的方法
- Promise.all用过吗?怎么实现?和promise.any以及promise.race的区别,怎样实现promise.allSettled?怎样实现⼀组promise的链式调用?怎样让⼀组promise同步执行?除了promise有什么其它解决异步的方式
- Async函数用过吗,有看过babel编译后的ES5代码吗
- 字符串拼接的性能问题
- 对数字进行处理,千分位分割
- 求dom的层级深度
- 哪些是类数组,怎么区分是类数组?
- ts T
- 实现isArray函数
JS解析
TS解析
HTML&CSS
- BFC
- flex布局
- grid布局
- css 3D 加速
- css伪类和伪元素
- 浏览器的绘制原理,浏览器重绘(Repaint)和回流(Reflow重排)
面试题
- css 垂直居中
- css 的 10px 字体无法显示的解决方案
- 多行省略
- 自适应 search 框; input + button 布局
- 移动端开发和 pc 端开发的不同之处
- 移动端适配方案,rem 计算相对哪个元素的 fontsize
- Html meta 标签介绍,和性能相关的标签
- CSS 画三角形
- 平行四边形
HTML&CSS解析
React
- react 的 diff 算法,key 的作用
- MVVM原理(实现简易MVVM)
- 虚拟 dom 的好处
- 比较 vue 和 react , React 代码与 Vue 代码互转和复用
- mobx,redux 的优缺点
- react 中 render props 适用场景(类组件和函数组件的区别, render props 和 HOC 优缺点)
- hooks: useState, useEffect, useCallback,useMemo
- react setState 什么时候同步什么时候异步
- 请实现 DOM2JSON 一个函数,可以把一个 DOM 节点输出 JSON 的格式,例如下面的例子
- react 生命周期
- react-router
- 组件通信
面试题
- react 原理
- 手写双向绑定实现,两种
- react 常用的优化项
- react 16/17 的新特性
- 两个同级的 react 组件如何通信
- constructor 和 componentdidMount 的区别 为什么请求不能放在 constructor 里面
- React hook底层优化原理,为什么会有hooks,react hooks里的useCallback了解吗
- react fiber
- react的context原理
- redux的架构,dispach的是什么概念,redux-thunk
- redux和mobx
- immutable
- Redux中间件原理
React解析
网络
- TCP/UDP
- TLS/SSL
- HTTP1.1
- HTTP2
- HTTP3
- HTTPS
- 浏览器缓存
- DNS
- CDN
面试题
- HTTPS 和 HTTP 的区别
- 从输入URL,到页面展示发生了什么
- TCP的3次握手和4次挥手
- 请求头有哪些信息?各自的作用是什么?
- xss、xsrf 防御手段
- http和websocket的联系和区别
网络解析
数据结构与算法
- 用js 实现栈,队列,链表
- 树, 红黑树
- 常见排序算法的思路和复杂度
- 二叉树前序/中序/后序遍历
- 深度优先/广度优先
- 动态规划
面试题
- 递归, 尾递归优化
- 链表排序(JS合并两个排序的链表)
- 冒泡、 选择、插入、快排
- 写版本号排序的代码(及优化),时间复杂度
- 动态规划求解最多有几种方案求解硬币找零问题
- 给了一个数组求两数相加和等于 m 总共有多少种可能性
- 请实现如下的函数,可以批量请求数据,所有的 URL 地址在 urls 参数中,同时可以通过 max 参数控制请求的并发度,当所有请求结束之后,需要执行 callback 函数。发请求的函数可以直接使用 fetch 即可
- [-1,-2,8,9,-10] 求最大子段和
- 链表环检测
- 一个完全二叉树,全部是大于 0 的整数,给出一个整数N,问从二叉树的根部开始向下,存不存在一个路径,使路径上所有的点的和是 N
- N 级台阶,一次只能跳 3 级 4 级或者 5 级,请问一种有多少种跳法
- 算法题,给一个字符串,给出该字符串字符的所有排列组合方式
- 一个数组,里面有 N 个整数不重复,求这个 N 个整数中缺少的最小正整数,要 求时间复杂度是 O(n)
- 1000 万 ip 地址,设计一个系统最快的查出某个 ip 地址在不在其中
- hashMap 的实现原理
- 算法: 回文数字判断,要尽可能高效的算法
- 手写数组去重
- 大数相乘
- 判断对称二叉树
- 从数组里获取是哪个乘积最大的三个数
- 数组的最大子序和
- 实现koa洋葱模型
- js 求开方
- js 构建二叉树数据结构并实现翻转操作
数据结构与算法解析
设计模式
- 常用设计模式,以及应用场景
- vue/react中应用什么设计模式
设计模式解析
工程化
- webpack的构建流程
- webpack,rollup,Parcel的相同点和不同点
- loader,常用loader,loader的思路
- plugin,常用plugin,plugin的思路
- webpack热更新是如何实现的 webpack-dev-server HMR
- webpack层面如何做性能优化
- webpack dll
- Webpack Code Splitting
- Webpack tree-shaking
- webpack scope hosting
- Babel
- 模版引擎
- 前端发布
- webpack source-map原理
- Webpack构建速度优化
面试题
- yarn和npm的区别
- webpack 按需加载
- Node 的 SSR 是否有做过,怎么做的?
工程化解析
安全
- XSS
- CSRF
- HTTPS原理
- 浏览器安全策略
- 代码保护
安全解析
Node
- Node多线程
- Node.js 进程与线程
- Node.js RPC
- 浏览器与Node的事件循环(Event Loop)有何区别
面试题
- node 开发,登陆机制的实现,性能调试,监控
Node解析