深入聊聊typescript、ES6和JavaScript的关系与前瞻技术发展

什么是typescript,为什么项目当中你可能没见过?

TypeScript由微软发布于2012年,在发布之初并没有立即获得广泛的采用,但随着它的逐步发展和流行的框架(如 Angular 和 React)的支持,TypeScript 的使用逐渐增加。现在,TypeScript 已经成为许多大型前端和后端项目的标准选择,尤其是在 TypeScript 和 JavaScript 的兼容性和工具链日益完善的情况下

主要用途

TypeScript 是 JavaScript 的超集,主要是为了给 JavaScript 添加类型系统和一些现代化的特性。它的主要用途和优势包括:

类型安全: TypeScript 允许你在代码中显式地声明数据类型(如字符串、数字、数组等),这可以帮助在开发过程中捕获错误,避免常见的运行时错误。例如,编译器会在你试图将字符串传给一个只接受数字的函数时提示错误。

增强的 IDE 支持: 由于 TypeScript 拥有静态类型信息,IDE(如 Visual Studio Code)能够提供更好的智能提示、代码补全和类型检查。这可以提高开发效率,减少 bug 的数量。

代码可维护性: 随着项目规模的扩大,类型系统能够帮助开发者理解和维护代码。TypeScript 的类型系统可以使代码更具可读性,并且容易追踪和理解数据流。

更好的重构支持: TypeScript 使得在大型项目中进行代码重构变得更加安全,因为 IDE 和编译器能够帮助检查重构后可能遗漏的地方。

支持最新的 JavaScript 特性: TypeScript 支持 ECMAScript(ES)的最新特性,即使这些特性在一些浏览器或环境中尚不支持,你也可以使用 TypeScript 进行开发。TypeScript 会将这些现代化的特性编译成兼容的 JavaScript。

与 JavaScript 完全兼容: TypeScript 代码会被编译成标准的 JavaScript,因此可以与现有的 JavaScript 代码和库无缝协作。你可以逐步迁移项目,从部分代码开始引入 TypeScript,而不是必须一次性重写整个项目

为什么在项目当中少见?

对于小型项目,TypeScript 可能会显得冗余,因为它引入的类型检查等功能可能不会带来明显的好处。许多小型或初创项目可能选择 JavaScript,因为它上手简单、开发速度较快。现有的开发工具链和工作流程已经围绕 JavaScript 进行了优化,引入 TypeScript 可能需要额外的配置和调整,仍有一些框架或库没有广泛采用。

对于JavaScript现代的新特性,有ES6不就好了吗?为什么还要TS?

ES6作为JavaScript的新特性,提升了开发效率和可读性
ES6(即 ECMAScript 6)引入了大量的 JavaScript 新特性,包括:

箭头函数 (() => {})
类 (class)
模块化 (import / export)
模板字符串 (Hello, ${name})
解构赋值 (const { x, y } = point)
Promise(用于异步编程)
生成器函数(function*)
Set 和 Map 数据结构
默认参数 (function(a = 5) {})
扩展运算符(…)

为什么选择 TypeScript 而不仅仅是 ES6?

类型系统:TypeScript 提供的静态类型检查在开发过程中能够捕捉到更多的错误。
开发体验:IDE 的智能提示和类型推断可以显著提高开发效率。
代码可维护性:TypeScript 更适合处理大型项目,减少潜在的 bug 并提高代码的可维护性。
高级类型系统:TypeScript 提供了很多 JavaScript 中没有的高级类型功能,适用于更复杂的应用场景。
兼容性:TypeScript 可以将新特性编译为兼容的 JavaScript,确保兼容不同的浏览器和环境。

ES6和TS在框架当中的应用如何?举例VUE来说

现代前端框架中,TypeScript(TS)和ES6(以及更高版本的 JavaScript)都得到了广泛的应用。很多框架,尤其是 Vue、React 和 Angular,都在逐渐加强对 TypeScript 的支持,并且许多开发者也在这些框架中采用 TypeScript 来编写应用程序。

Vue.js 自从版本 2.0 起就已经开始支持 ES6 特性,特别是通过 Babel 进行转译,允许开发者在项目中使用 ES6 的功能。例如解构赋值、箭头函数、模块化、异步函数。Vue 2.x 对 ES6 的支持通常依赖于现代浏览器或通过 Babel 进行转译。开发者可以在 Vue 项目中自由使用 ES6 的特性,但需要确保通过构建工具(例如 Vue CLI、Webpack、Babel)进行兼容性转译。

Vue 3.x 对 TypeScript 的支持相比 Vue 2.x 要更加完善和全面。Vue 3 是完全使用 TypeScript 编写的,因此它原生支持 TypeScript,且提供了多种工具来帮助开发者高效使用 TypeScript。

为什么在 Vue 中使用 TypeScript?

类型检查:TypeScript 为 Vue 组件提供了类型安全,帮助开发者捕获类型错误和常见的逻辑错误,尤其在大型项目中,可以减少许多不易察觉的 bug。
增强的 IDE 支持:得益于 TypeScript 的类型定义,IDE(如 VSCode)能够提供更好的代码提示、自动补全和跳转功能,极大提高开发效率。
维护和可扩展性:随着项目规模的扩大,TypeScript 能够帮助开发者更好地维护代码,尤其是当团队成员较多时,强类型系统能减少协作中的不一致和潜在错误。
Vue 3 的 Composition API 与 TypeScript 结合:Vue 3 引入的 Composition API 对 TypeScript 提供了更加自然的支持,通过使用 ref、reactive 等 API,Vue 3 能够与 TypeScript 更好地协同工作。

Vue 3 和 Composition API 的 TypeScript 支持

Vue 3 的 Composition API(如 setup、reactive、ref 等)与 TypeScript 配合得非常好,因为它让开发者可以通过更细粒度的控制来定义类型。(举例)

<template><div>{{ count }}</div><button @click="increment">Increment</button>
</template><script lang="ts">
import { defineComponent, ref } from 'vue';export default defineComponent({setup() {const count = ref<number>(0);  // 使用 TypeScript 明确类型const increment = () => {count.value++;};return {count,increment};}
});
</script>
//使用 lang="ts" 来指定这是一个 TypeScript 文件。
//ref<number>(0) 用来指定 count 是一个 number 类型的响应式数据。
//increment 函数会自动推断类型,并且如果你犯了类型错误(比如将非数字类型赋给 count),TypeScript 会提示你。

Vue 组件的类型声明

TypeScript 允许你为 Vue 组件创建类型声明,帮助 IDE 识别组件的接口,增加代码的可读性和可维护性。

Vue Router 和 Vuex 的类型支持

对于使用 Vue Router 和 Vuex 的应用,TypeScript 也提供了强大的类型支持:

Vue Router:可以使用 TypeScript 对路由参数、路由元数据等进行类型检查。
Vuex:使用 TypeScript 可以为 Vuex 的 state、mutations、actions 等提供类型定义,避免在使用过程中出现类型错误。

类型定义文件

如果你正在使用第三方库或组件,TypeScript 通常会提供相关的类型定义文件(如 @types)。如果你没有这些类型文件,Vue 和 TypeScript 的社区也提供了很多工具来为 Vue 组件提供类型支持。

使用 TypeScript 开发 Vue 项目

如果你想在 Vue 项目中使用 TypeScript,推荐使用 Vue CLI 创建项目,因为 Vue CLI 提供了 TypeScript 支持的模板。

vue create my-vue-project
//在创建过程中,选择 TypeScript 模板,Vue CLI 会自动为你配置 TypeScript

vue2.x可以使用typescript吗?

Vue 2.x 也可以与 TypeScript 配合使用。你可以通过一些额外的配置,如使用 vue-class-component 和 vue-property-decorator,在 Vue 2 中使用 TypeScript。不过,Vue 2.x 的 TypeScript 支持没有 Vue 3 那么完备,因此,如果你从头开始构建新项目,建议直接使用 Vue 3 和 TypeScript。

ES6与typescript在VUE框架当中的比较

ES6 是现代 JavaScript 的标准,它是框架、库和开发工具的基础。所有框架(包括 Vue)都支持 ES6 特性(如模块化、箭头函数、解构等),并且你可以在这些框架中自由地使用 ES6。TypeScript 则是增强了 ES6 特性,它提供了静态类型检查和更好的开发体验。在 Vue 中,TypeScript 提供了类型安全、更强的 IDE 支持以及更高的可维护性,尤其在大型项目中,TypeScript 会大大减少潜在的 bug 和错误

为什么在感官上会感觉JavaScript的发展越来越向java靠近了?比如增加了类型、泛型、接口这些

1、静态类型系统的引入:JavaScript → TypeScript

JavaScript 的类型系统
JavaScript 自始至终都是一种 动态类型语言,这意味着:

类型在运行时才被确定,开发者可以在运行时给变量赋予任何类型的值,灵活性很大。
缺乏类型检查:这导致在编写大型应用时,很多类型错误只能在运行时发现,尤其是对于不熟悉代码的开发者,代码的理解和维护变得更加困难。
然而,随着应用变得越来越复杂,开发者和团队开始感受到 动态类型带来的缺陷,特别是在处理大型项目时。这也是为什么 TypeScript 应运而生的原因。TypeScript 为 JavaScript 添加了 静态类型 和 类型检查,使得代码更加可靠和易于维护。它的出现大大提高了代码的可预测性和可维护性,尤其是在多人协作和大型项目中。

TypeScript 的特性:

静态类型:变量、函数参数、返回值的类型可以在编译时明确。
接口(Interface):允许你定义对象和类的结构,以确保它们符合预期的类型。
泛型(Generics):允许你创建可重用的函数、类和接口,它们可以处理多种类型的数据。
类型推导和类型检查:TypeScript 会根据上下文自动推导类型,增强开发体验,减少错误。
这些特性使得 TypeScript 更加接近静态类型语言,如 Java、C# 等,它们都有强大的类型系统,能够在编译时检查代码的类型。

Java 和 TypeScript 的相似性
Java 是一种静态类型语言,要求开发者显式声明变量的类型,并在编译时进行类型检查。TypeScript 通过引入类似的特性(如类型注解、接口、泛型)逐渐让 JavaScript 向静态类型语言靠拢。

2、JavaScript 语言的演变和需求变化

JavaScript 作为最流行的前端语言,经历了从 动态脚本语言 到 全栈语言 的演变。在过去几年,JavaScript 的应用场景逐渐扩大,特别是 Node.js 的流行使得 JavaScript 从浏览器端扩展到了服务器端,成为 全栈开发 的主要语言。

这种变化带来了一些挑战:

代码规模和复杂性增加:传统的 JavaScript 更适用于小型、快速的脚本编写,但对于大型的企业级应用来说,动态类型和弱类型检查带来了维护困难。
多人协作和团队开发:在多人协作的环境下,开发者可能对代码的类型和结构没有足够的了解,这增加了出错的可能性。
工具支持的需求增加:随着开发的复杂性增加,开发者希望使用更强大的工具(如 IDE 和静态分析工具),这些工具的核心之一就是类型系统。
为了应对这些问题,TypeScript 和类似的静态类型检查工具逐渐成为前端开发的标准。

3、 泛型、接口等特性的引入

泛型(Generics):泛型是一种允许开发者在定义函数、类或接口时不指定具体类型的特性,而是使用 占位符,在使用时提供具体的类型。泛型让代码更加灵活、可复用。

接口(Interface):接口是静态类型语言中常用的结构,用于定义对象的 契约 或结构。在 TypeScript 中,接口帮助开发者明确对象应该具备哪些属性和方法。

4、JavaScript 生态系统的进化

JavaScript 的工具链和生态系统逐渐发生了变化,开发者希望将 JavaScript 应用于 大型应用程序 或 企业级应用,这促使语言本身朝着静态类型语言的方向发展。加上 TypeScript 提供了 类型系统、接口、泛型等特性,这些特性曾经是 Java 和 C# 等语言的标志。

例如:

ES6(ECMAScript 2015) 引入了类(class)、模块化(module)、箭头函数(arrow function)、生成器(generator)等许多现代编程语言的特性,这些特性更接近于 Java、C# 等静态类型语言。
TypeScript 的引入,尤其是对 泛型、接口 和 类型注解 的支持,极大增强了 JavaScript 的表达能力,使其更加适合大型项目和复杂的企业级开发。

那么这么看来,JavaScript和typescript可以类似于积木一样,可以有动态类型也可以走静态类型,可以做前端也可以写node做后端,他的发展前景是不是会比JAVA这类语言更具有前瞻性?

1. 语言的灵活性:动态类型与静态类型

JavaScript 和 TypeScript 的一个显著优势在于它们的 灵活性,特别是在 类型系统 上:

JavaScript 是动态类型语言,意味着你可以在运行时自由地赋予变量不同的类型,这非常适合原型开发、快速迭代和小型项目。它的灵活性让开发者能够根据需要快速构建功能,并且有更少的语法和结构约束。
TypeScript 则在 JavaScript 的基础上增加了静态类型支持,允许开发者在编写代码时提前指定变量的类型,并在编译阶段进行检查。这使得 TypeScript 更加适合复杂的、长期维护的大型项目,尤其是多人协作的环境。
可切换的类型系统:
JavaScript 和 TypeScript 都允许开发者根据项目需求选择是否启用静态类型。对于一个开发者来说,TypeScript 的出现让他们能够灵活地选择是否使用静态类型,这种灵活性大大增加了语言的适用范围。
而在 Java 等静态类型语言中,类型检查是强制的,开发者无法选择放松或忽略类型检查(即使这对于快速开发或小型项目来说可能是一个限制)。

2. 前端与后端的统一性

JavaScript/TypeScript:全栈开发

JavaScript(通过 Node.js)和 TypeScript 都能够同时用于前端和后端开发,形成 全栈开发 的一体化语言。这一点对于开发者来说非常具有吸引力,特别是在团队中只需要掌握一种语言(JavaScript 或 TypeScript)即可开发完整的应用。
前端开发:JavaScript 是 Web 开发的主力语言,Vue、React、Angular 等前端框架都支持 JavaScript 和 TypeScript。通过 TypeScript,开发者可以在前端应用中享受更强的类型安全和开发体验。
后端开发:使用 Node.js,开发者可以在服务器端运行 JavaScript 或 TypeScript。Node.js 拥有一个庞大的生态系统,并且非常适合处理 I/O 密集型任务(如 API 服务、实时聊天应用等)。TypeScript 在 Node.js 开发中越来越流行,因为它为开发者提供了类型安全、自动补全和更强的代码检查,提升了开发效率和代码质量。
总结:JavaScript 和 TypeScript 提供了前后端一体化的开发体验,特别适合于全栈开发项目。相比之下,Java 通常需要额外的技术栈来处理前端(例如与 JavaScript 或 TypeScript 结合使用),并且更倾向于后端服务和企业级应用开发。

Java:传统的后端语言

Java 一直以来是大型企业级应用的主力语言,尤其是在传统的 后端开发 和 大规模系统 中,拥有庞大的生态和非常成熟的工具链。虽然 Java 的前端开发(例如 JavaFX 或其他 GUI 技术)也存在,但它并不像 JavaScript 那样在 Web 前端中占主导地位。
全栈开发的挑战:虽然 Java 在后端具有强大的影响力,但它并不天然适合 Web 前端开发,因此需要使用其他技术(如 JavaScript)与之配合。通常情况下,Java 和 JavaScript 这两种语言被用作前后端技术栈的一部分。

3. 开发者社区和生态系统的活跃性

JavaScript 和 TypeScript 的最大优势之一是它们的 庞大社区和生态系统。这两个语言不仅是前端开发的核心,而且在服务器端、桌面应用程序、甚至移动应用开发(如通过 React Native)中也得到了广泛的应用。

Node.js 的生态:Node.js 让 JavaScript 能够在服务器端运行,开创了全新的开发模式。Node.js 拥有丰富的 npm 包管理器,它提供了大量的开源模块,可以帮助开发者快速构建服务端应用。
TypeScript 的兴起:随着 TypeScript 的普及,越来越多的大型项目(包括 Angular、Vue、React 等)开始原生支持 TypeScript,或者提供 TypeScript 的开发支持。TypeScript 不仅提升了 JavaScript 的开发体验,也让它更加适合大型企业应用,减少了因类型错误导致的问题。
相比之下,Java 的生态虽然成熟,但它的工具链和开发模式相对更加传统。它仍然依赖于较为复杂的构建工具和多样的框架,如 Spring、Hibernate 等,虽然非常强大,但对于现代的敏捷开发和快速迭代的需求来说,有时显得稍显繁琐。

4. JavaScript/TypeScript 与 Java 的性能对比

JavaScript/TypeScript(通过 Node.js):Node.js 通常适用于高并发、I/O 密集型的应用程序,如实时聊天、API 服务、流媒体等。由于 JavaScript 是单线程的,Node.js 使用事件循环和异步 I/O 来处理大量的并发连接。
性能特点:Node.js 在处理 I/O 密集型任务(如文件操作、数据库查询等)时表现非常出色,但在 CPU 密集型任务 上可能不如 Java 和其他编译型语言(如 C++)那样高效。
Java:Java 是一种 编译型语言,其运行效率通常优于 JavaScript,特别是在 CPU 密集型计算和大规模数据处理上。Java 使用 JVM(Java Virtual Machine)来执行字节码,并且优化了内存管理和垃圾回收机制,因此非常适合构建 企业级应用、分布式系统 和 大数据处理系统。
性能特点:Java 在 高并发 和 多线程 处理方面具有天然的优势,特别是在处理复杂的计算和数据密集型任务时,Java 通常比 Node.js 更高效。

5. 未来趋势:前瞻性和发展潜力

JavaScript/TypeScript 的前瞻性

全栈开发:JavaScript 和 TypeScript 的最大优势之一是它们能够在 前端和后端 之间无缝连接,开发者可以用同一语言处理整个应用。这种语言的统一性让开发者能够提高生产力,减少上下游切换的复杂性,促进了 全栈开发 的流行。
快速迭代和灵活性:JavaScript 和 TypeScript 都适用于 快速迭代 和 敏捷开发,这种灵活性特别适合互联网企业和初创公司。
开源生态和工具链:JavaScript 和 TypeScript 的开源生态非常活跃,新的框架、库和工具层出不穷,这使得前端和后端开发都能紧跟技术发展的趋势。Node.js、React、Vue、Angular、NestJS、Next.js 等热门框架和工具都大大推动了 JavaScript 和 TypeScript 的发展。
WebAssembly(Wasm):JavaScript 在未来将与 WebAssembly 结合,进一步提升其在浏览器端的计算能力,扩展其在高性能计算中的应用场景。

Java 的前瞻性

企业级应用和大规模系统:Java 仍然在企业级应用、分布式系统、大数据处理和 Android 开发中占有非常重要的位置。其强大的 JVM(Java 虚拟机)生态、成熟的框架(如 Spring、Hibernate)以及卓越的 性能优化,让 Java 在需要高性能、可扩展系统的应用场景中继续占据主导地位。
现代化转型:Java 社区也在进行现代化转型,加入了许多现代编程语言的特性,如 Lambda 表达式、流式编程(Streams)、模块化(Java 9 引入的模块系统)等,以适应当下更加敏捷和灵活的开发需求。

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

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

相关文章

【大模型系列】Mobile-Agent(2024.04)

Paper: https://arxiv.org/pdf/2401.16158Github: https://github.com/X-PLUG/MobileAgentAuthor: Junyang Wang et al. 北交、阿里巴巴 Mobile-agent核心工作&#xff1a; 首先使用视觉感知工具(检测和OCR模型)识别前端界面中文本和图像元素的精确位置 检测图标&#xff1a;…

Android Studio学习笔记

01-课程前面的话 02-Android 发展历程 03-Android 开发机器配置要求 04-Android Studio与SDK下载安装 05-创建工程与创建模拟器

【数据库系列】Spring Boot 中整合 MyBatis-Plus详细步骤

在 Spring Boot 中整合 MyBatis-Plus 可以按照以下步骤进行&#xff1a; 一、整合步骤 1. 创建 Spring Boot 项目 首先&#xff0c;使用 Spring Initializr&#xff08;https://start.spring.io/&#xff09;创建一个新的 Spring Boot 项目。在创建过程中&#xff0c;选择以…

CVSS漏洞评分系统曝出严重缺陷

在网络安全领域&#xff0c;漏洞的管理和评估是企业防御的重要一环。然而&#xff0c;随着技术的快速发展和攻击手段的不断演变&#xff0c;传统的漏洞评分系统显露出了不可忽视的弊端。在近期的Black Hat欧洲大会上&#xff0c;摩根大通的网络安全专家警告称&#xff0c;通用漏…

深入剖析MySQL数据库架构:核心组件、存储引擎与优化策略(一)

sql语句分为两大类&#xff1a;查询&#xff08;select&#xff09;、增删改----修改&#xff08;update&#xff09; select语句的执行流程 执行sql语句的流程&#xff1a;连接数据库、缓存查询、解析器、优化器、执行器、存储引擎操作数据 客户端&#xff1a;图形界面工具…

电子病历四级视角下SQL语句的优化策略与实践用例研究

一、引言 1.1 研究背景与意义 在当今数智化医疗时代,电子病历(Electronic Medical Record,EMR)系统已成为医疗机构信息化建设的核心组成部分。电子病历不仅承载着患者的诊疗信息,更是医疗决策、质量控制、科研分析以及医疗管理的重要依据。根据国家卫生健康委发布的《电…

C++简明教程(14)动态库和静态库的内存共享机制

总结&#xff0c;动态库共享内存&#xff0c;静态库独占一份内存。

Elasticsearch向量检索需要的数据集以及768维向量生成

Elasticsearch8.17.0在mac上的安装 Kibana8.17.0在mac上的安装 Elasticsearch检索方案之一&#xff1a;使用fromsize实现分页 快速掌握Elasticsearch检索之二&#xff1a;滚动查询(scrool)获取全量数据(golang) Elasticsearch检索之三&#xff1a;官方推荐方案search_after…

CSS2笔记

一、CSS基础 1.CSS简介 2.CSS的编写位置 2.1 行内样式 2.2 内部样式 2.3 外部样式 3.样式表的优先级 4.CSS语法规范 5.CSS代码风格 二、CSS选择器 1.CSS基本选择器 通配选择器元素选择器类选择器id选择器 1.1 通配选择器 1.2 元素选择器 1.3 类选择器 1.4 ID选择器 1.5 基…

基于AT89C51单片机的可暂停八路抢答器设计

点击链接获取Keil源码与Project Backups仿真图&#xff1a; https://download.csdn.net/download/qq_64505944/90196607?spm1001.2014.3001.5503 C15 部分参考设计如下&#xff1a; 摘要 随着社会进步和科技发展&#xff0c;电子设备在各类活动中的应用日益普遍&#xff0c…

【python】unittest单元测试

文章目录 基本使用不同启动方式的区别 基本使用 下面是根据文档写的一个demo&#xff0c;主要的内容基本都包含了&#xff0c;使用时导入自己的业务类测试类中的方法就行。 import unittest# 测试类不强制test开头&#xff0c;仅作为规范。但必须继承unittest.TestCase class…

从0入门自主空中机器人-4-【PX4与Gazebo入门】

前言: 从上一篇的文章 从0入门自主空中机器人-3-【环境与常用软件安装】 | MGodmonkeyの世界 中我们的机载电脑已经安装了系统和常用的软件&#xff0c;这一篇文章中我们入门一下无人机常用的开源飞控PX4&#xff0c;以及ROS中无人机的仿真 1. PX4的安装 1.1 PX4固件代码的下载…

SqlSession的线程安全问题源码分析

&#x1f3ae; 作者主页&#xff1a;点击 &#x1f381; 完整专栏和代码&#xff1a;点击 &#x1f3e1; 博客主页&#xff1a;点击 文章目录 SqlSession 是线程安全的吗&#xff1f;为什么说是线程不安全的&#xff1f;事务管理问题 数据库连接的共享问题 一级缓存线程安全问题…

Unity Mesh生成Cube

1. 配置一个Cube的每个面的数据 一共是6个面&#xff0c;每个面包含的数据包括4个顶点的相对顶点坐标&#xff08;Cube的中心为原点&#xff09;&#xff0c;法线方向&#xff0c;UV坐标&#xff0c;顶点渲染顺序&#xff0c;以及这个面用到的材质&#xff0c;因为这里是Top&am…

小程序组件 —— 22 组件案例 - 轮播区域绘制

这一节我们实现轮播图最外层的盒子&#xff0c;也就是把轮播图的最外层搭好&#xff0c;先不给轮播图添加图片&#xff0c;因为图片属于新的组件&#xff0c;组件里面有一些知识点&#xff0c;需要单独分开讲&#xff1b; 回顾一下&#xff0c;在进行传统网页开发时&#xff0…

【文献精读笔记】Explainability for Large Language Models: A Survey (大语言模型的可解释性综述)(二)

****非斜体正文为原文献内容&#xff08;也包含笔者的补充&#xff09;&#xff0c;灰色块中是对文章细节的进一步详细解释&#xff01; 3.1.2 基于注意力的解释&#xff08;Attention-Based Explanation&#xff09; 注意力机制可以揭示输入数据中各个部分之间的关系&#…

git reset --hard(重置到当前提交,所有未提交的更改都会被永久丢弃)

git reset --hard 是一个强大的命令&#xff0c;它会将你的工作目录、暂存区和当前分支的 HEAD 指针重置到指定的提交状态&#xff0c;所有未提交的更改都会被永久丢弃。因此&#xff0c;使用这个命令时需要非常小心。 基本用法 重置到当前提交&#xff08;丢弃所有未提交的更…

单元测试入门和mockup

Java 新手入门&#xff1a;Java单元测试利器&#xff0c;Mock详解_java mock-CSDN博客 这个是典型的before when assert三段式&#xff0c;学一下单测思路 这个没有动态代理&#xff0c;所以是直接class(对比下面) Jmockit使用笔记_增加代码覆盖率_覆盖try catch_使用new Mock…

智能化人才招聘系统是怎样的?

随着企业规模的扩大和业务范围的拓展&#xff0c;人才招聘成为了企业发展的关键环节。然而&#xff0c;市面上的人才招聘系统琳琅满目&#xff0c;质量参差不齐&#xff0c;许多企业发现&#xff0c;并非所有系统都能满足他们的需求&#xff0c;特别是智能化的需求。今天&#…

SpringBoot 实现登录功能

目录 下发JWT 令牌依赖文件令牌生成令牌验证 统一验证技术过滤器 Filter快速使用实现登录校验 拦截器 Interceptor快速使用实现登录校验 下发JWT 令牌 全称: JSON Web Token 官网&#xff1a; https://jwt.io/ 以JSON 的数据格式安全传输信息&#xff0c;利用 base64 进行编…