【前端面试3+1】12 toktn验证过程、面向对象特性、webpack和vite的区别、【字符串中的第一个唯一字符】
一、token验证过程
- 用户登录:用户提供用户名和密码进行登录。
- 服务器验证:服务器接收到用户提供的用户名和密码,进行验证。
- 生成token:如果用户名和密码验证通过,服务器会生成一个token,通常包含一些加密的信息,如用户ID、过期时间等。
- 返回token:服务器将生成的token返回给客户端(通常是前端应用)。
- 存储token:客户端通常会将token存储在本地,如LocalStorage或SessionStorage中。
- 发送token:客户端在每次请求需要验证的资源时,会将token发送到服务器。
- 验证token:服务器接收到token后,会解析token并验证其有效性,包括检查token是否过期、是否被篡改等。
- 授权访问:如果token验证通过,服务器会允许客户端访问请求的资源;否则,拒绝访问并返回相应的错误信息。
二、面向对象的特性有哪些?
面向对象编程(Object-Oriented Programming,OOP)是一种常用的编程范式,其中包含了一些重要的面向对象特性,主要包括以下几点:
1.封装:
封装是将数据(属性)和行为(方法)打包在一个单元中,并对外部隐藏对象的内部实现细节的过程。
通过封装,对象提供了一个清晰的界面,其他对象可以通过该界面与对象进行交互,而无需了解对象内部的具体实现。
封装有助于提高代码的可维护性和安全性,同时降低了对象之间的耦合度。
2.继承:
继承是指一个类(子类)可以继承另一个类(父类)的属性和方法,从而可以重用父类的代码,并在此基础上进行扩展。
继承可以帮助实现代码的重用,减少重复编写代码的工作量,同时也有助于建立类之间的层次关系。
3.多态:
多态是指同一个方法可以根据对象的不同类型表现出不同的行为。在多态中,同一个方法可以被不同的对象调用,产生不同的结果。
多态性使得代码更加灵活,可以根据具体对象的类型来调用相应的方法,提高了代码的可扩展性和可维护性。
4.抽象:
抽象是指将对象的共性特征提取出来,形成一个抽象类或接口,隐藏对象的具体实现细节,只展示对象的关键特征和行为。
抽象提供了对现实世界的建模方法,可以更好地理解和设计复杂系统,同时也有助于降低系统的复杂性。
三、 webpack和vite 区别
Webpack 和 Vite 都是前端构建工具,但它们在实现方式和使用场景上有一些区别:
1.Webpack:
- Webpack 是一个功能强大的静态模块打包工具,可以将各种资源(如 JavaScript、CSS、图片等)打包成静态文件。
- Webpack 需要通过配置文件来定义打包规则,包括 entry、output、loader、plugin 等,功能非常灵活且可定制性强。
- Webpack 适用于大型项目,可以处理复杂的构建需求,支持代码分割、懒加载、热更新等功能。
2.Vite:
- Vite 是一个基于 ES Modules 的现代化前端构建工具,旨在提供快速的开发体验。
- Vite 使用原生 ES Module 的方式加载模块,不需要提前将代码打包成静态文件,而是在浏览器端实时编译和加载模块。
- Vite 支持热更新,开发模式下可以实现秒级的冷启动,提供了快速的开发环境和高效的开发体验。
- Vite 更适合于小型项目或快速原型开发,对于现代化的前端框架(如 Vue 3、React)有更好的支持
Webpack 更适合处理复杂的构建需求和大型项目,而 Vite 则更适合快速开发和轻量级项目,提供了更快的开发体验。
四、 【算法】字符串中的第一个唯一字符
1、题目:
给定一个字符串
s,找到 它的第一个不重复的字符,并返回它的索引 。如果不存在,则返回-1。int firstUniqChar(char* s) {}2、解题:
int firstUniqChar(char* s) {int count[26] = {0}; // 用于记录每个字母出现的次数int len = strlen(s);// 第一次遍历,统计每个字母出现的次数for (int i = 0; i < len; i++) {count[s[i] - 'a']++;}// 第二次遍历,找到第一个出现次数为1的字母,返回其索引for (int i = 0; i < len; i++) {if (count[s[i] - 'a'] == 1) {return i;}}return -1; // 未找到不重复字符,返回-1 }
相关文章:
【前端面试3+1】12 toktn验证过程、面向对象特性、webpack和vite的区别、【字符串中的第一个唯一字符】
一、token验证过程 用户登录:用户提供用户名和密码进行登录。服务器验证:服务器接收到用户提供的用户名和密码,进行验证。生成token:如果用户名和密码验证通过,服务器会生成一个token,通常包含一些加密的信…...
机器人瓶胚检测工作站(H3U脉冲轴控制)
1、变量定义 2、程序监控1 2、 程序监控2 3、程序监控3 机器人输送料和机构的动作安全尤为重要,下面我们讨论下安全联锁控制逻辑 4、相机拍照触发信号 5、相机拍照触发时序...
数字货币:未来金融的崭新篇章
一、数字货币是什么? 数字货币是一种基于区块链技术的货币,它通过去中心化的方式发行和交易,无需传统的金融机构参与。数字货币的交易过程公开透明,可以确保交易的真实性和不可篡改性。比特币、以太坊、瑞波币等是目前比较知名的…...
USACO18DEC部分题 补题报告
一、Convention S P5119 [USACO18DEC] Convention S 题意 给定大巴的数量,容量,奶牛的数量和到来的时间,要求合理安排大巴的发车时间使奶牛的等待时间最小,求出奶牛最大等待时间的最小值 思路 本题使用二分,输入之…...
聊一聊一些关于npm、pnpm、yarn的事
前言 整理了最近的闲聊,话题是前端各个包管理器,如果分享的不对或者有异议的地方,麻烦请及时告诉我~ 耐心看完,也许你会有所收获~ 概述 本文阅读时间:10-15分钟左右; 难度:初级,…...
c语言多功能计算软件170
定制魏:QTWZPW,获取更多源码等 目录 题目 要求 主要代码片段 题目 设计一个计算器软件,具备如下功能提示界面。 要求 设计出界面,注意界面名称最后为自己的姓名;(20分)能够实现加、减、乘、…...
python图形化展示数据:保存为图片后查看
python debug时需要图像化展示数据,有三种方法。 方法一:t是值在[0, 255]之间的numpy数组,形状为 [ x ∗ x ∗ 3 ] [x*x*3] [x∗x∗3],其中3为channel数。(使用t.permute(1,2,0)变换通道,使用np.squeeze(t…...
PostgreSQL入门到实战-第二十四弹
PostgreSQL入门到实战 PostgreSQL中表连接操作(八)官网地址PostgreSQL概述PostgreSQL中CROSS JOIN命令理论PostgreSQL中CROSS JOIN命令实战更新计划 PostgreSQL中表连接操作(八) 使用PostgreSQL CROSS JOIN从连接的表中生成行的笛卡尔乘积。 官网地址 声明: 由于操作系统, 版…...
Spring Boot 统一功能处理(二)
本篇主要介绍Spring Boot统一功能处理中的统一数据返回格式。 目录 一、定义统一的返回类 二、配置统一数据格式 三、测试配置效果 四、统一格式返回的优点 五、源码角度解析String问题 一、定义统一的返回类 在我们的接口在处理请求时,返回的结果可以说是参…...
Flutter开发基础之动画专题
Flutter开发基础之动画专题 动画设计的作用是让UI界面更流畅、直观,能够有效的提升用户体验。 在Flutter开发中,动画分为多个方面: 基础动画、页面交互动画、绘图动画、矩阵变换等。 基本动画 常用的基本动画有透明度动画、缩放动画、旋转动…...
PHP 图片裁剪类封装
PHP工具类 图片裁剪类封装 <?php namespace App\Utils;/*** 图片裁剪工具类* author 田小涛* date 2020年7月23日* comment**/ class ImageCropUtils {private $sImage;private $dImage;private $src_file;private $dst_file;private $src_width;private $src_height;priv…...
Android 14.0 SystemUI修改状态栏电池图标样式为横屏显示
1.概述 在14.0的系统rom产品定制化开发中,对于原生系统中SystemUId 状态栏的电池图标是竖着显示的,一般手机的电池图标都是横屏显示的 可以觉得样式挺不错的,所以由于产品开发要求电池图标横着显示和手机的样式一样,所以就得重新更换SystemUI状态栏的电池样式了 如图: 2.S…...
FPGA:图像数字细节增强算法(工程+仿真+实物,可用毕设)
目录 日常唠嗑一、视频效果二、硬件及功能1、硬件选择2、功能3、特点 未完、待续……四、工程设计五、板级验证六、工程获取 日常唠嗑 有2个多月没写文章了,又是老借口:“最近实在是很忙”🤣,不过说真,确实是比较忙&am…...
Android netty的使用
导入netty依赖 implementation io.netty:netty-all:4.1.107.Final使用netty 关闭netty /*** 关闭*/private void closeSocket() {LogUtils.i(TAG, "closeSocket");if (nettyManager ! null) {nettyManager.close();nettyManager null;}if (nettyExecutor ! null) {…...
苹果电脑启动磁盘是什么意思 苹果电脑磁盘清理软件 mac找不到启动磁盘 启动磁盘没有足够的空间来进行分区
当你一早打开苹果电脑,结果系统突然提示: “启动磁盘已满,需要删除部分文件”。你会怎么办?如果你认为单纯靠清理废纸篓或者删除大型文件就能释放你的启动磁盘上的空间,那就大错特错了。其实苹果启动磁盘的清理技巧有很…...
【Java SE】多态
🥰🥰🥰来都来了,不妨点个关注叭! 👉博客主页:欢迎各位大佬!👈 文章目录 1. 多态1.1 多态是什么1.2 多态的意义1.3 多态的实现条件 2. 重写2.1 重写的概念2.2 重写的规则2.3 重写与重…...
Yarn vs npm的大同小异Yarn是什么?
Yarn vs npm的大同小异&Yarn是什么? 一、Yarn、npm是什么?二、Yarn vs npm:特性差异总结 一、Yarn、npm是什么? npm是Node.js的包管理器,是由Chris Korda维护。 npm,它全称为Node Package Manager,是…...
1.Godot引擎|场景|节点|GDS|介绍
Godot介绍 Godot是一款游戏引擎 可以通过在steam商城免费下载 初学者和编程基础稍差的推荐学习使用GDScript,和python有些相似 Godot节点 Godot的开发思想——围绕节点 节点的特征与优势 最常用基本的开发组件大部分都具有具体的功能,如图片…...
springboot3 redis 实现分布式锁
分布式锁介绍 分布式锁是一种在分布式系统中用于控制不同节点上的进程或线程对共享资源进行互斥访问的技术机制。 在分布式环境中,多个服务可能同时访问和操作共享资源,如数据库、文件系统等。为了保持数据的一致性和完整性,需要确保在同一…...
2024年第十四届MathorCup数学应用挑战赛A题思路分享(妈妈杯)
A题 移动通信网络中PCI规划问题 物理小区识别码(PCI)规划是移动通信网络中下行链路层上,对各覆盖小区编号进行合理配置,以避免PCI冲突、PCI混淆以及PCI模3干扰等现象。PCI规划对于减少物理层的小区间互相干扰(ICI),增加物理下行控制信道(PDCCH)的吞吐量有着重要的作用,尤其…...
AI辅助生殖:多模态数据融合与深度学习在胚胎评估中的应用
1. 项目概述:当AI遇见生命的起点在辅助生殖技术(ART)这个关乎无数家庭希望的前沿领域,每一次胚胎移植都像是一场精密的“押注”。医生和胚胎学家们需要在显微镜下,从数个甚至数十个胚胎中,挑选出那个最有潜…...
【信息科学与工程学】【通信工程】第二篇 网络的主要算法10 容器网络
容器与虚拟机对比特征表 特征维度 容器特征函数 虚拟机特征函数 技术实现差异 性能影响 适用场景 1. 资源隔离 container_isolation(namespace, cgroup) 函数说明:基于Linux命名空间和cgroup的资源隔离 输入:namespace_type, cgroup_config 输出:isolation_level(0…...
大语言模型评测框架解析:从公平对比到工程选型实践
1. 项目概述与核心价值最近在GitHub上看到一个挺有意思的项目,叫“ai-llm-comparison”。光看名字,你大概能猜到它是做什么的——对比不同的大语言模型。但如果你以为这只是个简单的跑分列表,那就太小看它了。作为一个在AI应用开发领域摸爬滚…...
12,Springboot3+vue3实现系统公告功能
做一个新的公告模块步骤如下 一, 后端 1, 创建系统公告表 CREATE TABLE `notice` (`id` int NOT NULL AUTO_INCREMENT COMMENT 主键ID,`title` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 公告标题,`content` varchar(255) COLLATE utf8mb4_unicode_ci …...
从F1赛车到无人机:雷达测距测速公式在现实世界中的5个酷应用
从F1赛车到无人机:雷达测距测速公式在现实世界中的5个酷应用 当F1赛车以300公里时速呼啸而过时,车手如何精确判断与前车的安全距离?当无人机在复杂环境中自主飞行时,又是怎样避开突然出现的障碍物?这些看似科幻的场景背…...
凤凰逆变器300W – 基于STM32的纯正弦波逆变器(增强版)
摘要:Phoenix Inverter 300W是一个基于STM32和μC/OS-II的开源纯正弦波逆变器,将12V直流电转换为220V交流电,具备PID闭环控制、智能保护和串口监控功能项目概述基于STM32和μC/OS-II的300W纯正弦波逆变器,将12V直流电转换为220V交…...
2026最权威的五大降AI率神器实测分析
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 知网AI检测系统凭借剖析文本当中的语言模式,以及逻辑结构,还有词汇分…...
别急着加内存!从一次OOM到MySQL锁表,我如何用jstack和jvisualvm揪出真凶
从OOM到MySQL锁表:一套完整的问题排查与性能优化实战指南 当线上系统突然崩溃,屏幕上跳出"Memory cgroup out of memory"的红色告警时,大多数开发者的第一反应往往是"赶紧加内存"。但真正的问题往往隐藏在这表面现象之下…...
微信数据安全警示:为什么PyWxDump项目被永久移除及其合规性启示
微信数据安全警示:为什么PyWxDump项目被永久移除及其合规性启示 【免费下载链接】PyWxDump 删库 项目地址: https://gitcode.com/GitHub_Trending/py/PyWxDump 在当今数字时代,数据安全和个人隐私保护已成为技术开发领域的核心议题。今天我们要探…...
别再让低通滤波器坑了你!PMSM滑模观测器位置估算的相位补偿实战(附Simulink模型)
永磁同步电机无感控制中的相位补偿实战:从理论到Simulink实现 在永磁同步电机(PMSM)无速度传感器控制领域,滑模观测器因其强鲁棒性成为工程实践中的热门选择。然而,当工程师们兴奋地搭建完仿真模型后,常常会遇到一个令人头疼的现象…...
