我的知识脉络

O、自我介绍

一、技术选型
前端框架:vue2、vue3、React 老版本及 hooks版本;
SSR框架:next;
微前端框架:Single-SPA、qiankun(乾坤)、无界、McroApp;
跨端方案:RN、webApp、Hybrid(H5);
node框架:express、koa、egg;
脚本:nodejs
二、前端项目优化

1、开发阶段优化:
-代码规范与风格统一:采用ESLint、Prettier等工具来统一代码风格和规范。
-组件化和模块化:设计可复用的组件和模块,提高开发效率和代码可维护性。
-代码评审:通过代码评审来提高代码质量和团队协作效率。
-业务流程设计优化;

2、构建阶段优化:
-自动化构建工具的选择和配置:如Webpack、Rollup等。
-Tree Shaking:去除无用代码,减少最终包的体积。
-代码拆分(Code Splitting):按需加载代码,减少首次加载的体积。
-持续集成/持续部署(CI/CD):自动化测试和部署流程。

3、编码阶段优化:
-语义化HTML:提高代码的可读性和SEO性能。
-CSS优化:如使用CSS预处理器、PostCSS、CSS-in-JS等。
-JavaScript性能优化:包括算法优化、避免内存泄漏等。

4、访问性能优化:
-白屏调优:资源体积、缓存策略、代码分段;
-用户体验方面:加载动画、渐进式数据分页等;

5、网络性能优化:
-压缩资源:如图片、字体、CSS和JavaScript文件。
-HTTP请求优化:减少请求次数,合理设置HTTP缓存策略。
-使用CDN和DNS预解析来加速资源加载。

6、网站安全优化:
-通信加密:RSA非对称加密;
-xss:转义用户输入、验证和过滤输入、CSP (内容安全策略)、使用HTTPOnly和Secure标志的Cookies:
-csrf:Referer和Origin头、避免自动提交的表单、敏感操作用post提交;

三、核心技能:
JS:
1、数据类型和变量:变量声明(var、let、const);
2、作用域和闭包:闭包的概念和用途、立即执行函数表达式(IIFE)、作用域链;
3、this指向:call、apply 和 bind 方法 、不同情境下 this 的指向、this 的工作原理;
4、对象和原型:对象的创建和原型继承、构造函数、原型链、ES6 类的语法糖和与传统原型继承的区别;
5、事件循环和异步编程:事件循环、宏任务和微任务、Promise、async/await;
6、浏览器API和Web APIs:setTimeout、setInterval、requestAnimationFrame、localStorage、sessionStorage、IndexedDB、Web Workers、Fetch API / XMLHttpRequest
7、模块化和工具链:模块化标准(CommonJS、AMD、UMD、ES6 Modules)、Babel 和 JavaScript 的编译;
8、网络请求和安全:跨域资源共享(CORS)、https和http、https 1.0和2.0、Web 安全(XSS、CSRF);
9、ES6及更新版本的新特性:箭头函数、新增的数组和对象方法;
10、测试和调试:单元测试(Jest、Mocha)、浏览器开发者工具、性能分析和内存泄露调试;
11、函数式编程:纯函数特点、高阶函数、柯里化;
12、Web组件和影子DOM: 影子DOM(Shadow DOM)Web-components;
13、编程范式和代码风格:23种设计模式、
14、辅助工具和库:代码质量检查(如ESLint)、包管理器(如npm、Yarn);
TS:
1、协变 (Covariance) 和 逆变 (Contravariance)
协变:如果A是B的子类型,那么Array是Array的子类型。这意味着你可以将派生类型的数组赋值给基类型的数组,这在函数返回值和解构数据时特别有用。
逆变:如果A是B的子类型,那么Function是Function
的子类型。逆变通常出现在函数参数的类型关系中,也就是说,你可以将接收基类型参数的函数赋值给接收派生类型参数的函数的变量。
在TypeScript中,函数参数是双向协变的,这是对JavaScript现实行为的一种妥协,因为函数参数在JS中既可以协变也可以逆变。
2、函数重载 (Function Overloading)
在TypeScript中,函数可以根据参数列表的不同有多个定义,这就是函数重载。函数重载允许一个函数接受不同数量或类型的参数时做出不同的处理。重载的函数会有多个签名,但实现时你只能写一个函数体,这个函数体必须能够处理所有重载的签名。

function add(a: number, b: number): number; // 签名1
function add(a: string, b: string): string; // 签名2
function add(a: any, b: any): any { // 实现return a + b;
}

3、泛型 (Generics)
泛型是TypeScript中用来创建可重用组件的一种工具,它可以支持多种类型的数据。泛型可以提高代码复用性,同时保持类型安全。你可以用泛型定义函数、接口、类,而不必在编写代码时指定具体的类型。

function identity<T>(arg: T): T {return arg;
}

在上面的例子中,T 用作类型变量,代表任意类型。这样,identity 函数就可以接受任何类型的参数,并返回相同的类型。
4、类型断言 (Type Assertion):类似于类型转换,但不进行数据检查或重构。
5、类型守卫 (Type Guard):一种运行时检查,确保变量属于特定类型。
6、高级类型 (Advanced Types):例如交叉类型、联合类型、索引类型、映射类型等。
7、装饰器 (Decorators):一种特殊的声明,可以附加到类、方法、访问器、属性或参数上。
8、模块 (Modules) 和 命名空间 (Namespaces):代码组织和封装的机制。
9、异步编程 (Async/Await):处理异步操作的现代JavaScript特征。
C3:
H5:

四、算法题

五、项目情况

六、项目亮点+价值贡献

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/724305.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

为何禁止将控件指针传入子线程进行更新?

在Qt中&#xff0c;直接在子线程中更新GUI控件是不安全的&#xff0c;也不被允许。Qt的GUI部分是非线程安全的&#xff0c;这意味着所有的GUI相关操作都应该只在主线程&#xff08;也就是GUI线程&#xff09;中执行。尝试在子线程中访问或修改GUI控件可能会导致不可预测的行为和…

深度解析人工智能领域的迁移学习技术

摘要&#xff1a; 迁移学习是人工智能领域中的一个重要分支&#xff0c;它使计算机能够将在一个任务上学到的知识应用到其他任务上。本文将深入探讨迁移学习技术&#xff0c;包括其原理、技术和应用&#xff0c;并通过丰富的案例分析展示其在实际场景中的应用。 引言&#xf…

Selenum八种常用定位(案例解析)

Selenium是一个备受推崇的工具。它有着丰富的功能&#xff0c;让我们能够与网页互动&#xff0c;执行各种任务&#xff0c;能为测试工程师和开发人员提供了很大的便利。 要充分利用Selenium&#xff0c;就需要了解如何正确定位网页上的元素。 接下来我将带大家共同探讨Seleni…

【js】数组的常用方法

增加 push,unshift,splice,concat 前面三种修改原数组,concat不会修改原数组push 从后面添加数据,并返回新数组的长度unshift 从前面添加数据,并返回新数组的长度splice 可以接受三个参数,第一个参数开始位置,第二个参数是删除元素的数量,第三个参数是插入的数据concat 合并数…

多模态入门

VIT处理图像 CNN VS Transformer 多模态BLIP模型 网络结构 视觉编码器: 就是 ViT 的架构。将输入图像分割成一个个的 Patch 并将它们编码为一系列 Image Embedding,并使用额外的 [CLS] token 来表示全局的图像特征。视觉编码器不采用之前的基于目标检测器的形式,因为 ViLT 和…

推荐书籍《低代码平台开发实践:基于React》—— 提升开发效率,构建优质应用

写在前面 随着数字化转型的深入&#xff0c;企业对应用开发效率和灵活性的要求不断提高。低代码平台作为新兴的软件开发方式&#xff0c;通过可视化界面和预构建组件&#xff0c;极大简化了应用开发流程&#xff0c;降低了技术门槛。基于React的低代码平台以其组件化、响应式和…

Kube-Prometheus 监控Istio

推荐 Istio 多集群监控使用 Prometheus&#xff0c;其主要原因是基于 Prometheus 的分层联邦&#xff08;Hierarchical Federation&#xff09;。 通过 Istio 部署到每个集群中的 Prometheus 实例作为初始收集器&#xff0c;然后将数据聚合到网格层次的 Prometheus 实例上。 网…

Effective C++ 学习笔记 条款14 在资源管理类中小心copying行为

条款13导入这样的观念&#xff1a;“资源取得时机便是初始化时机”&#xff08;Resource Acquisition Is Initialization&#xff0c;RAII&#xff09;&#xff0c;并以此作为“资源管理类”的脊柱&#xff0c;也描述了auto_ptr和tr1::shared_ptr如何将这个观念表现在heap-base…

PAT知识点——python保留小数点后两位的操作

python保留小数点后两位 在Python中&#xff0c;可以使用几种不同的方法来保留小数点后两位。 使用round()函数&#xff1a; num 3.14159 rounded_num round(num, 2) print(rounded_num) # 输出&#xff1a;3.14使用字符串格式化操作符 %&#xff1a; num 3.14159 …

3.6作业

作业要求&#xff1a;数据库操作的增、删、改 程序代码&#xff1a; #include<myhead.h> int main(int argc, const char *argv[]) {//定义数据库句柄指针sqlite3 * ppDb NULL;//打开数据库&#xff0c;如果数据库不存在&#xff0c;则创建数据库//将数据库句柄由参数…

【Leetcode每日一刷】数组|704. 二分查找、27. 移除元素

力扣每日刷题 一、704. 二分查找1.1、题目1.2、解题思路1.3、代码实现——C1.4、 总结&易错 二、27. 移除元素2.1&#xff1a;题目2.2、解题思路2.3、代码实现——C1.4、 总结&易错 一、704. 二分查找 1.1、题目 704. 二分查找 1.2、解题思路 题型&#xff1a;数组…

2024年洗地机推荐,希亦、美的、西屋、顺造洗地机哪个品牌最耐用质量好?

对许多人来说&#xff0c;全屋清洁可能是件让人望而却步的任务&#xff0c;因为它需要花费大量的体力和时间。但是&#xff0c;随着科技的发展&#xff0c;我们可以找到一些能够简化这个过程的神器&#xff0c;比如洗地机。有了洗地机&#xff0c;我们可以轻松地完成扫地、拖地…

【CSP试题回顾】201509-1-数列分段

CSP-201509-1-数列分段 解题代码 #include <iostream> #include <vector> #include <algorithm> using namespace std;int n, t, maxSeg 0;int main() {cin >> n;vector<int>list(n);for (int i 0; i < n; i){cin >> list[i];}auto…

JavaBoy假期如何学习项目?弯道块才是真的快!

至暗时刻 老话说的好&#xff0c;弯道快才是真的快&#xff0c;谁直线不会加油&#xff1f;每到假期都是在座的各位弯道超车的时候。转眼自己已经出来搬了快四年砖头了&#xff0c;偶尔访问下牛客发现行情真是一年不如一年。。。不由得回想起自己春招时候的经历。 回想起2020年…

视腾智眼APP

视腾智眼是一款为ios设备开发的相机app。 使用该app可以将你的手机图像通过USB线传输到电脑。 适合7*24小时不间断需要拍摄和分析的应用场景。比如监控和工业视觉分析 检测。 手持iPhone,即可媲美专业相机完成高精度缺陷检测、产品检验等关键质量把控环节。再也不用担心单反…

HI3519DV500 HI3519DRFCV500 HI3519DRBCV500 海思安防监控芯片 提供原厂开发包

一、总体介绍 Hi3519DV500是一颗面向视觉行业推出的超 高清智能 SoC。该芯片最高支持四路sensor输 入&#xff0c;支持最高4K30fps的ISP图像处理能力&#xff0c;支持 2F WDR、多级降噪、六轴防抖、全景拼接、多光 谱融合等多种传统图像增强和处理算法&#xff0c;支持通过AI…

浏览器发出一个请求到收到响应步骤详解

前言 在网络通信中&#xff0c;浏览器向Web服务器发送HTTP请求消息的过程是一个复杂而精密的环节&#xff0c;涉及到URL解析、DNS解析、数据拆分、路由表规则和MAC头部添加等一系列步骤。本文将深入探讨这一过程的每个环节&#xff0c;帮助读者更全面地了解浏览器与Web服务器之…

双体系Java学习之关键字,标识符以及命名规范

重新开始从Java基础开始学&#xff0c;保持每周两更的状态&#xff0c;刚开学事情有点多。 关键字 标识符 命名规范

移动端开发之微信公众号接入的两种方式

移动端开发之微信公众号接入的两种方式 文章目录 移动端开发之微信公众号接入的两种方式1. 自定义菜单方式1. 自定义菜单2. 子菜单内容1. 发消息2. 跳转网页 2. 二次开发 微信公号的接入方式有两种&#xff1a; 自定义菜单&#xff1a;二次开发(写代码) 1. 自定义菜单方式 1. …

docker 安装 portainer

小编给友友们总结了一下 Portainer 的好处以下 Portainer是Docker的图形化管理工具&#xff0c;提供状态显示面板、应用模板快速部署、容器镜像网络数据卷的基本操作&#xff08;包括上传下载镜像&#xff0c;创建容器等操作&#xff09;、事件日志显示、容器控制台操作、Swar…