<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[c_studer_的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/c_studer_</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; c_studer_]]></copyright><item><title><![CDATA[让Trae/Cursor/Claude/Code......像 Tech Lead 一样管理 AI Agent：一条命令，并行执行，交叉验证]]></title><link>https://blog.youkuaiyun.com/c_studer_/article/details/158468284</link><guid>https://blog.youkuaiyun.com/c_studer_/article/details/158468284</guid><author>c_studer_</author><pubDate>Fri, 27 Feb 2026 17:50:07 +0800</pubDate><description><![CDATA[MCO（Multi-CLI Orchestrator）是一个AI编程Agent编排工具，可同时调度多个AI编程助手并行执行任务并汇总结果。通过一条命令，用户可让Claude、Codex、Gemini等AI助手同时分析代码、评估方案或生成文档，总耗时仅取决于最慢的Agent。MCO支持架构分析、代码审查等多种场景，提供多视角交叉验证，帮助开发者发现单一AI可能遗漏的问题。安装简单，支持npm和pip两种方式，适合需要获取不同AI独立见解的开发需求。]]></description><category></category></item><item><title><![CDATA[addEventListener的第三个参数和你不知道的性能优化]]></title><link>https://blog.youkuaiyun.com/c_studer_/article/details/144009158</link><guid>https://blog.youkuaiyun.com/c_studer_/article/details/144009158</guid><author>c_studer_</author><pubDate>Sun, 24 Nov 2024 16:15:09 +0800</pubDate><description><![CDATA[options。]]></description><category></category></item><item><title><![CDATA[Boyer-Moore 投票算法]]></title><link>https://blog.youkuaiyun.com/c_studer_/article/details/144009135</link><guid>https://blog.youkuaiyun.com/c_studer_/article/details/144009135</guid><author>c_studer_</author><pubDate>Sun, 24 Nov 2024 16:13:56 +0800</pubDate><description><![CDATA[在计算机科学中，寻找数组中的多数元素（即出现次数超过一半的元素）是一个经典问题。Boyer-Moore 投票算法（Boyer-Moore Voting Algorithm）是一种高效且优雅的解决方案，能够在时间复杂度为 O(n) 和空间复杂度为 O(1) 的情况下找到多数元素。Boyer-Moore 投票算法的核心思想是通过“投票”和“抵消”的过程来找到多数元素。假设我们有一个长度为 n 的数组，我们需要找到其中出现次数超过一半的元素。：遍历完成后，当前的候选人就是出现次数超过一半的元素。]]></description><category></category></item><item><title><![CDATA[css样式覆盖]]></title><link>https://blog.youkuaiyun.com/c_studer_/article/details/143998438</link><guid>https://blog.youkuaiyun.com/c_studer_/article/details/143998438</guid><author>c_studer_</author><pubDate>Sat, 23 Nov 2024 20:31:46 +0800</pubDate><description><![CDATA[在这段 HTML 代码中，bluered和green。每个类都定义了不同的文本颜色。在这种情况下，最终显示的颜色取决于 CSS 的层叠（Cascading）规则。]]></description><category></category></item><item><title><![CDATA[width设置100vh但出现横向滚动条的问题]]></title><link>https://blog.youkuaiyun.com/c_studer_/article/details/143998421</link><guid>https://blog.youkuaiyun.com/c_studer_/article/details/143998421</guid><author>c_studer_</author><pubDate>Sat, 23 Nov 2024 20:31:08 +0800</pubDate><description><![CDATA[这时,滚动条会占据一定的宽度，这会导致元素的实际宽度超过视口的可见宽度，从而出现横向滚动条。body是有默认样式的, 会有一定的默认边距, 把默认边距清除就是正常的了。：子元素的宽度会根据父元素的宽度进行计算，不会超过父元素的宽度。的元素宽度也不会超过视口的可见宽度，所以不会出现横向滚动条。：父元素的宽度是视口的宽度减去滚动条的宽度（如果有滚动条）。在width中减去滚动条的宽度就可以了, 一般是17px,时，元素的宽度会占据整个视口的宽度，包括滚动条的宽度。表示元素的宽度是其父元素宽度的 100%。]]></description><category></category></item><item><title><![CDATA[假设我们有多个数组，每个数组存放的是图片的 URL，但存在很多重复项。我们需要得到一个对所有数组去重的结果数组。]]></title><link>https://blog.youkuaiyun.com/c_studer_/article/details/143712099</link><guid>https://blog.youkuaiyun.com/c_studer_/article/details/143712099</guid><author>c_studer_</author><pubDate>Tue, 12 Nov 2024 13:41:39 +0800</pubDate><description><![CDATA[假设我们有多个数组，每个数组存放的是图片的 URL，但存在很多重复项。我们需要得到一个对所有数组去重的结果数组。来优化查找操作，减少每次查找的时间复杂度。为了提高性能，我们可以使用。]]></description><category></category></item><item><title><![CDATA[JSON.stringfy做深拷贝的缺点(代码示例)]]></title><link>https://blog.youkuaiyun.com/c_studer_/article/details/143702361</link><guid>https://blog.youkuaiyun.com/c_studer_/article/details/143702361</guid><author>c_studer_</author><pubDate>Tue, 12 Nov 2024 10:02:14 +0800</pubDate><description><![CDATA[大家应该都用过JSON.stringfy配合JSON.parse来做深拷贝, 但是对于这种方式实现深拷贝的缺点可能不是十分清楚, 下面直接上代码。这是一段对一个对象做深拷贝的代码,对象中包括了各种的数据类型。对比输入输出, 我们发现。]]></description><category></category></item><item><title><![CDATA[深入剖析输入URL按下回车，浏览器做了什么]]></title><link>https://blog.youkuaiyun.com/c_studer_/article/details/143696304</link><guid>https://blog.youkuaiyun.com/c_studer_/article/details/143696304</guid><author>c_studer_</author><pubDate>Mon, 11 Nov 2024 21:50:42 +0800</pubDate><description><![CDATA[首先,是去寻找页面资源的位置。如果导航到, 假设HTML页面被定位到IP地址为的服务器。如果以前没有访问过这个网站，就需要进行DNS查询。浏览器向域名服务器发起DNS查询请求，最终得到一个IP地址。第一次请求后，这个IP地址可能会被缓存一段时间，这样后续对这个网址的请求中可以通过从缓存里面检索IP地址而不需要再通过域名服务器来进行查询。每个主机名在页面加载时通常只需要进行一次DNS查询。但是，对于，则需要多次DNS查询。如果字体、图像、脚本、广告都有不同的主机名，则需要对每一个主机名进行DNS查询。]]></description><category></category></item><item><title><![CDATA[你知道RequestAnimation的执行时机是什么时候吗? 它属于宏任务还是微任务呢]]></title><link>https://blog.youkuaiyun.com/c_studer_/article/details/143689036</link><guid>https://blog.youkuaiyun.com/c_studer_/article/details/143689036</guid><author>c_studer_</author><pubDate>Mon, 11 Nov 2024 16:30:04 +0800</pubDate><description><![CDATA[Window：requestAnimationFrame() 方法 - Web API | MDN（简称rAF）是一种用于在浏览器的下一次重绘之前执行代码的 API。它的回调执行在浏览器的刷新周期内，以实现流畅的动画效果。那么在事件循环中，它不属于宏任务或微任务，而是一个单独的调度机制。它会在浏览器的渲染阶段执行，而不依赖于宏任务或微任务队列。浏览器会在每一帧的渲染前调用回调，通常以每秒 60 次左右的频率运行（这取决于显示器刷新率和系统性能）。rAF回调的执行优先级低于微任务（例如），但高于。]]></description><category></category></item><item><title><![CDATA[两种不同类型的防抖]]></title><link>https://blog.youkuaiyun.com/c_studer_/article/details/143644604</link><guid>https://blog.youkuaiyun.com/c_studer_/article/details/143644604</guid><author>c_studer_</author><pubDate>Sat, 09 Nov 2024 14:20:02 +0800</pubDate><description><![CDATA[通过闭包的方式, 对节流期间的调用进行保留, 并在节流时间结束后进行执行。相应的,保留节流期间调用的版本是怎么处理的呢。这两个版本的防抖函数区别主要是。]]></description><category></category></item><item><title><![CDATA[如果让你打乱一个数组你会怎么做]]></title><link>https://blog.youkuaiyun.com/c_studer_/article/details/143644484</link><guid>https://blog.youkuaiyun.com/c_studer_/article/details/143644484</guid><author>c_studer_</author><pubDate>Sat, 09 Nov 2024 14:13:27 +0800</pubDate><description><![CDATA[用sort当然是可以的,但是sort用的是快排,时间复杂度NlogN,那么有没有更好的办法呢。以此类推，确保了每个元素在每个位置出现的概率相等。可以发现洗牌算法的性能比sort的速度要快了很多。]]></description><category></category></item><item><title><![CDATA[代码中的设计模式-策略模式]]></title><link>https://blog.youkuaiyun.com/c_studer_/article/details/143609505</link><guid>https://blog.youkuaiyun.com/c_studer_/article/details/143609505</guid><author>c_studer_</author><pubDate>Thu, 07 Nov 2024 22:47:51 +0800</pubDate><description><![CDATA[策略模式（Strategy Pattern）是一种行为设计模式，它允许你定义一系列算法或行为，并将它们封装在独立的策略类中。然后，你可以根据需要在运行时选择不同的策略。这种模式特别适合处理复杂的条件逻辑，比如多个 if-else if 语句。]]></description><category></category></item><item><title><![CDATA[forEach可以遍历不可枚举属性吗]]></title><link>https://blog.youkuaiyun.com/c_studer_/article/details/143609058</link><guid>https://blog.youkuaiyun.com/c_studer_/article/details/143609058</guid><author>c_studer_</author><pubDate>Thu, 07 Nov 2024 22:15:42 +0800</pubDate><description><![CDATA[静态方法返回一个数组，其包含给定对象中所有自有属性（包括不可枚举属性，但不包括使用 symbol 值作为名称的属性）。同时通过getOwnPropertyNames方法,我们就可以对其返回值调用forEach来进行遍历了。这里有一个对象,我们定义了一个不可枚举属性。我们可以通过两种方式来遍历不可枚举属性。运行这段代码我们发现发生了一个错误。]]></description><category></category></item><item><title><![CDATA[在JS中, 0 == [0] 吗]]></title><link>https://blog.youkuaiyun.com/c_studer_/article/details/143609002</link><guid>https://blog.youkuaiyun.com/c_studer_/article/details/143609002</guid><author>c_studer_</author><pubDate>Thu, 07 Nov 2024 22:12:04 +0800</pubDate><description><![CDATA[根据 JavaScript 的类型转换规则，数组会被转换为字符串。运算符会尝试将两个操作数转换为相同的类型，然后再进行比较。在不知道答案的情况下, 你觉得这段代码的输出是什么。我当时觉得是false, 结果我错了–^^–方法会将数组的内容转换为字符串，因此。运算符允许这种隐式转换。那为什么输出是true呢。因为==的隐式类型转换,]]></description><category></category></item><item><title><![CDATA[cookie能不能跨域]]></title><link>https://blog.youkuaiyun.com/c_studer_/article/details/143608952</link><guid>https://blog.youkuaiyun.com/c_studer_/article/details/143608952</guid><author>c_studer_</author><pubDate>Thu, 07 Nov 2024 22:09:46 +0800</pubDate><description><![CDATA[在学习整理的知识点的时候想到这个问题,但是看了网上的好几篇文章感觉说的不是很清晰而且不全面,于是我整理总结了这篇文章通常情况下，（如同源策略，Same-Origin Policy）会阻止 Cookie 跨域共享，以保护用户的隐私和防止跨站攻击。但通过一些特殊手段和配置，可以在特定条件下实现 Cookie 的跨域共享。]]></description><category></category></item><item><title><![CDATA[49.字母异位词分组]]></title><link>https://blog.youkuaiyun.com/c_studer_/article/details/139470636</link><guid>https://blog.youkuaiyun.com/c_studer_/article/details/139470636</guid><author>c_studer_</author><pubDate>Wed, 05 Jun 2024 14:01:02 +0800</pubDate><description><![CDATA[，这不符合题目的要求。题目要求的输出是将所有相同频率的字符串直接存储在同一个数组中（例如，是一个数组，用来存储所有具有相同字符频率统计的字符串。，则每个字符串都会被封装成一个独立的数组再被添加到。添加到数组中，而不是添加一个包含字符串。的原因在于我们希望直接将字符串。成为一个数组的数组（例如，]]></description><category></category></item><item><title><![CDATA[Vue中对数组直接赋值视图中无法获取响应式状态的问题]]></title><link>https://blog.youkuaiyun.com/c_studer_/article/details/139470461</link><guid>https://blog.youkuaiyun.com/c_studer_/article/details/139470461</guid><author>c_studer_</author><pubDate>Wed, 05 Jun 2024 13:59:11 +0800</pubDate><description><![CDATA[对每个图片渲染遮罩层,发现在鼠标进入离开事件中,页面上并不显示相应的显示隐藏,而且vue调试工具中对应的状态也未发生改变。创建pdfImageMaskHoverHandler方法进行输出调试发现控制台也会输出对应状态变更。排查原因:Vue 无法侦测到通过直接修改数组索引的方式来改变数组元素。解决办法:使用 Vue 提供的能够触发视图更新的数组方法，例如。时，Vue 并不会触发视图更新。]]></description><category></category></item><item><title><![CDATA[单个标签的多个监听器绑定]]></title><link>https://blog.youkuaiyun.com/c_studer_/article/details/138486041</link><guid>https://blog.youkuaiyun.com/c_studer_/article/details/138486041</guid><author>c_studer_</author><pubDate>Mon, 06 May 2024 10:34:56 +0800</pubDate><description><![CDATA[【代码】单个标签的多个监听器绑定。]]></description><category></category></item><item><title><![CDATA[Elementui的el-footer标签使用报错]]></title><link>https://blog.youkuaiyun.com/c_studer_/article/details/138484146</link><guid>https://blog.youkuaiyun.com/c_studer_/article/details/138484146</guid><author>c_studer_</author><pubDate>Mon, 06 May 2024 09:50:00 +0800</pubDate><description><![CDATA[​	警告信息表示 Vue 不识别。el-footer的报错信息。在组件中进行引入和暴露。]]></description><category></category></item><item><title><![CDATA[控制台打印[object Object]的原因]]></title><link>https://blog.youkuaiyun.com/c_studer_/article/details/138226139</link><guid>https://blog.youkuaiyun.com/c_studer_/article/details/138226139</guid><author>c_studer_</author><pubDate>Fri, 26 Apr 2024 17:53:15 +0800</pubDate><description><![CDATA[方法并没有做特殊处理，所以返回的是对象的通用字符串表示形式，即。对于普通 JavaScript 对象，在尝试转换对象为字符串时调用了对象的。]]></description><category></category></item></channel></rss>