- 博客(162)
- 收藏
- 关注
原创 webrtc建立连接的过程
WebRTC 是个神奇的技术,让浏览器直接进行点对点(P2P)音视频通话或数据传输,不用每次都靠服务器中转。想知道 Alice 和 Bob 是怎么通过 WebRTC 建立视频通话的吗?下面是整个过程,拆分成几个简单步骤,带你搞清楚每一步都在干啥!,两者配合让 WebRTC 在复杂的网络环境下也能实现高效的 P2P 通信。信令服务器只是个“临时助手”,真正的音视频数据靠 P2P,省服务器、降延迟!如果你觉得需要调整语气(比如更专业或更简短),或者想加点图表(比如流程图),告诉我,我可以再改!
2025-04-23 11:36:04
1101
原创 【算法题讲解】45. 跳跃游戏 II
这个算法就像青蛙跳荷叶:站得高望得远,每步都挑最佳落脚点。虽然不试所有路,但通过“贪心”选择最优中转站,保证跳跃次数最少。希望这个故事让你对算法有画面感了吧!有什么不明白的再问我哦!
2025-03-27 15:19:09
922
原创 [前端面试]如果我要动态生成一个表格,你会用模板、渲染函数还是 JSX,为什么?
好的,这个问题是一个很经典的面试场景题,考察你对 Vue 中不同渲染方式的理解和选择能力。我会根据具体情况给出详细的回答,同时展示如何用模板、渲染函数和 JSX 实现动态表格,然后分析为什么选择某种方式。已经足够应对,代码最直观,团队上手也快。如果未来需求变复杂,比如列数动态变化或单元格需要特殊处理,我可能会转向渲染函数或 JSX,具体看团队的技术栈和偏好。以下是我对“如果我要动态生成一个表格,你会用模板、渲染函数还是 JSX,为什么?因为数据结构简单,渲染逻辑就是个简单的循环,模板的。
2025-03-08 18:37:14
708
原创 【算法题讲解】239. 滑动窗口最大值
没问题,小伙伴!咱们再换个更接地气的方式,把这个算法讲得像讲故事一样轻松有趣,保证你听完会觉得“哦!原来是这么回事!”😄 别急,咱们慢慢来,像剥洋葱一样一层一层揭开它!想象你在学校门口卖烧烤,窗口是个烤架,只能放 串肉。你想让顾客每次都能快速知道“当前烤架上最粗的那串肉”是哪串。顾客会从左到右一串串看过去,每次挪走最左边的串(过期),加一串新串(新来的)。你得飞快报出当前烤架上最大的一串!你的原方法是:每次挪动后,把烤架上的 3 串肉都拿下来看一遍,挑出最粗的,太费时间了!现在咱们用一个“聪明小本子”(
2025-03-08 13:54:45
867
原创 【精华】为什么class在前端开发中不常用?
历史原因:快速开发、受到 Self 语言启发、迎合 Java 外观但保持简单。技术原因:原型更轻量、灵活,适合动态脚本语言的需求。哲学原因:强调自由度和运行时可变性,而不是静态结构。如果 JavaScript 当初选择基于类,可能更像 Java,失去今天的灵活性和独特性,但也可能让初学者更难接受它的动态特性。原型机制是 JavaScript 的“灵魂”,也是它能适应从简单脚本到现代复杂应用的关键。继承(基于原型)、构造函数+原型是主要方式,适合需要原型链的场景。复制(不基于原型):扩展运算符、
2025-02-28 21:28:20
690
原创 使用 mitt 实现兄弟组件之间的通信和函数触发
通过使用mitt实现的事件总线,可以轻松实现兄弟组件之间的通信,不需要通过复杂的props或emit层层传递。每个组件都可以通过emit来触发事件,通过on来监听和响应事件,实现了组件间的解耦和更灵活的交互方式。
2025-02-24 10:57:01
515
原创 生物信息学:基因组可视化 基础知识扫盲
基因“什么时候表达”、“表达多少”和“在哪些地方表达”被精准地控制起来的过程。想象一下,基因就像一个工厂的“说明书”,而“表达”就是工厂按照说明书生产产品(通常是蛋白质)的过程。那么,基因表达的调控就是这个工厂的管理者来决定什么时候开工、生产多少产品、在哪个车间生产。通过理解表观遗传学注释(如何调控基因)、ClinVar和dbSNP(突变的意义和存在)、进化保守性(功能重要性),以及具体案例(基因功能预测、疾病研究、调控分析),你可以更清晰地看到基因组注释对生物学研究的重要意义。
2025-01-06 13:43:56
1416
原创 面试题手撕篇
当你使用 new Person() 来调用构造函数 Person 时,它会创建一个新的对象,并将该对象的原型设置为 Person.prototype。如果在 Promise.race 中的第一个 Promise 对象被拒绝(rejected),则整个 Promise.race 会立即拒绝(reject)并返回该拒绝的原因。这意味着 person 对象将继承 Function.prototype 上的属性和方法,而不是 Person.prototype 上的属性和方法。注意那个时间一定要写对!
2024-03-15 23:26:45
1225
原创 [BUG]vscode插件live server无法自动打开浏览器
点了open with live server但是浏览器没有自动跳出来。http://127.0.0.1:5500/里面是有东西的。配置环境变量,在path中添加program files。
2024-03-05 21:24:53
1215
原创 面试题HTML+CSS+网络+浏览器篇
吃生日饭”CSRF(Cross-Site Request Forgery,跨站请求伪造)攻击者获取用户在目标网站上的会话(例如cookie),然后构造一些恶意的请求,目标网站接收到请求后,认为是合法的用户请求解决:同源策略HTML(HyperText Markup Language)是一种标记语言,用于创建和设计网页的结构。HTML 使用标记(tag)来包围文本,这些标记告诉浏览器如何显示文本或者处理文本的结构。
2024-03-04 16:05:23
1013
原创 面试题VUE篇
计算属性是用来声明式的描述一个值依赖了其他的值,并且只有在依赖的属性发生变化时才会重新计算。每个计算属性都包括一个getter 和 setter 方法,它们分别负责在读取属性值和修改属性值时执行相应的逻辑。get() {},在项目的src目录下创建一个plugins文件夹,然后在该文件夹内创建一个 JavaScript 文件,用于定义你的自定义指令。// 在这里定义你的自定义指令// 指令钩子函数// 指令绑定时的逻辑},// 更多钩子函数和配置项可以根据需要添加});
2024-03-03 20:19:50
1427
原创 面试题JS篇
事件会从触发事件的元素一直冒泡到最外层的祖先元素。例如父子都有点击事件,点儿子,先儿子输出,后父亲输出。是一种编程思想把程序看做是对象相互作用的过程每个对象都有自己的属性和方法,并能够与其他对象交互类:是对象的模板,描述了对象的共同特征和行为。对象是类的实例,具体的实体三个特点:1.封装:把属性和方法封装在一个单元内,隐藏了对象的具体实现细节,只暴露必要的接口。提高代码的可维护性和可重用性。2.继承:允许 子继承父类的属性和方法,便于共享和扩充已有的代码。
2024-02-26 17:35:37
1357
1
原创 typescript学习笔记
泛型(Generics)是 TypeScript 中的一个重要特性,它允许你编写可重用的、灵活的代码,同时提高代码的类型安全性。接口在 TypeScript 中是一种非常有用的工具,它有助于增强代码的可读性和可维护性,同时可以进行静态类型检查,帮助开发者在开发过程中捕获潜在的错误。泛型是 TypeScript 中非常强大和灵活的功能,它允许你编写更具通用性和可维护性的代码,并提供了强类型检查,有助于在编译时捕获潜在的错误。在函数中使用泛型可以使函数接受不同类型的参数,同时确保正确的类型检查。
2023-12-15 22:44:34
1092
原创 【BUG】微信小程序image不会随着url动态变化
第一次打开界面,显示的是默认头像而不是用户头像,似乎image里面的src只要第一次有值就不会再更新了。
2023-12-10 17:50:12
612
原创 微信小程序云开发 微信支付功能 逻辑+踩坑
首先开通微信支付商户号然后小程序后台里关联商户号然后在开发者工具里申请api权限云开发》设置》其他设置》微信支付配置申请一下权限和绑定显示已通过即可。
2023-11-20 13:19:07
1497
1
原创 论文阅读/写作扫盲
JCR分区和中科院分区是用于对期刊进行分类和评估的两种常见方法。它们的存在是为了帮助学术界和研究人员更好地了解期刊的学术质量、影响力和地位。JCR分区(Journal Citation Reports):JCR分区是由Clarivate Analytics(前身为汤森路透)发布的一个期刊评价工具,旨在提供期刊的引用数据和指标。JCR分区将期刊按照其影响因子(Impact Factor)进行分组和排名,将期刊划分为不同的分区(如Q1、Q2、Q3、Q4)以反映其相对影响力的水平。
2023-10-12 21:00:37
4048
原创 JS中的继承问题和解决技术
如果需要继承父类原型对象中的属性和方法,可以通过组合继承(Combination Inheritance)等其他继承模式来实现。
2023-02-24 14:56:45
556
原创 3D影视公司招聘内容摘录汇总
仙草台湾TOP1 台北https://www.grassjelly.tv/#1https://www.facebook.com/page/261055605652/search/?q=%E6%8B%9B%E8%81%98各位朋友,新年快乐!我想你们昨天晚上应该一定必然没有错过周五再次同台吧?定番High歌〈伤心的人别听慢歌〉、经典情歌〈龙卷风〉,不知道为什么要重新编曲的〈香水〉(威~)这次的梦幻共演就是仙草年度压轴力作!这是仙草第一次应用延展实境(Extended Reality,又称XR)
2022-05-11 15:33:43
327
原创 OpenCV、cv、cv2的区别?
Officially, OpenCV releases two types of Python interfaces, cv and cv2.cv:I started working on cv. In this, all OpenCV data types are preserved as such. For example, when loaded, images are of format cvMat, same as in C++.For array operations, there are
2022-04-14 11:29:26
7715
3
原创 视听语言 课程笔记
历史是小孔成像,倒立的影像。广角镜头=短焦距镜头,影像小,背景范围大望远镜头=长焦距镜头,影像大,背景范围小,体积大50mm称为标准焦距,更接近人眼效果希区柯克变焦:摄像机向人靠近,同时镜头逐渐变成广角,形成主题大小不变,背景范围变大的效果...
2022-03-25 21:21:07
844
原创 GAMES101【lecture9-13】-现代计算机图形学入门-闫令琪-笔记
Lecture9:纹理映射 texture mapping三角形每个顶点都对应一个(u,v),(假设这个对应关系已经知道了,不是讨论的重点)接下来要在三角形内部填充,根据三个顶点计算插值首先引入:重心坐标三角形内一点x,y可以用三个顶点A,B,C表示:如果三个系数都是非负的,那这个点在△ABC内没有这个条件,那这个点就是在△ABC所在平面上...
2022-03-24 11:00:11
707
原创 操作系统 考研复试-速记
文章目录什么是操作系统?它的主要特征是什么?要使一个系统不发生死锁,一般可采用哪些方法?简述它们的实现原理。简述进程和程序的区别。什么是安全状态?当系统不安全时就是系统进入了死锁状态吗?虚拟存储器的主要特征是什么?简述一下虚拟存储器的主要特征是什么?简述一下程序有哪几种装入方式?又有哪几种链接方式?文件目录和目录文件的区别?目前广泛采用的目录结构形式是哪种?有何优点?为什么要区别内核态和用户态?系统调用是什么?与一般过程调用有何区别?在设备管理中,何谓设备独立性?如何实现设备独立性?什么是 DMA 方式?它
2022-03-20 21:20:01
685
原创 DEM\DTM\DOM\DRG\DLG示例图
DEM:数字高程模型DTM:数字地形模型只包含高程属性的时候就是DEM。实际上地形模型不仅包含高程属性,还包含其它的地表形态属性,如坡度、坡向等。DOM:Digital orthophoto MAP 数字正射影像图DRG:数字栅格地图DLG:数字线划地图...
2022-03-19 12:37:52
1093
原创 前端模拟数据插件mockjs的使用
场景:模拟一个获取轮播图的数据😺step1:模拟后端-生成模拟数据src->mockbanner.json中是返回的模拟数据[ { "id":"1", "imgUrl":"/images/1.webp" }, { "id":"2", "imgUrl":"/images/2.webp" }, { "id":"3", "imgUrl":"/images/3.
2022-03-18 17:08:15
1466
原创 为什么函数防抖要用到闭包?
防抖的标准写法为: function debounce(fn, delay){ let timer = null; return function(){ if(timer){ clearTimeout(timer) timer = setTimeOut(fn, delay)
2022-03-09 15:02:22
856
原创 为什么要用mid=low+ (high-low) /2 而不是(low+high) /2?
原因就是如果两个数都是超级大就会引起overflow你比如:int a = Integer.MAX_VALUE - 10; int b = Integer.MAX_VALUE ; int omg = ( a + b ) / 2; 具体的计算公式如下:mid = low + x( high + low ) / 2 = low + xlow + x = ( high + low ) / 2x = ( high + low ) / 2 - lowx = ( high + low - 2 *
2022-03-08 12:20:19
915
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人