IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

标签:JavaScript

共 776 篇相关文章

IT 累计浏览 2,708

JavaScript內存优化

这篇讲的是JavaScript如何从语言底层进行内存优化。作者从作用域、作用域链和闭包这三个基础但关键的机制切入,解释了它们如何影响内存的分配与释放,比如未用`var`声明的变量会意外挂到全局作用域,而闭包则会延长内部变量的生命周期。 文章进一步剖析了V8引擎(Node.js和Chrome的核心)的内存回收策略,包括其分代管理思想(新生代与老生代)以及Scavenge、Mark-Sweep等主要垃圾回收算法。核心观点在于,理解“引用”是判断对象是否存活、能否被回收的根本,这直接决定了优化的方向。 最后,文章将理论落地到实践,推荐了如“善用函数作用域包裹代码”等具体优化技巧,其背后的逻辑正是利用函数作用域来及时终结不再需要的变量引用,避免内存泄漏。对于前端开发者、Node.js服务端开发者而言,理解这些原理是写出高性能、低开销代码的重要一步。

IT 累计浏览 3,687

写了10年Javascript未必全了解的连续赋值运算

这篇讲的是连续赋值运算符“=”在JavaScript中一个反直觉的表现。作者从阅读jQuery源码时遇到的一行代码 `a.x = a = {n:2}` 出发,对它的执行顺序和内部机制产生了好奇。代码中,初始 `a` 指向 `{n:1}`,执行后 `a.x` 为 `undefined`,这个结果并不直接。 作者首先提出了两种常见的错误猜想:一种认为是从左到右赋值,另一种认为是从右到左但引擎会阻止赋值。为了验证,他引入了一个关键变量 `b` 来持有 `a` 的原始引用。实验结果令人惊讶:`a.x` 仍为 `undefined`,但 `b.x` 却变成了 `[object Object]`。这说明 `a.x = {n:2}` 这个赋值实际上执行了,只是发生在 `a` 被重新赋值之前。 文章揭示的核心机制是:该表达式被引擎解释为 `a.x = (a = {n:2})`。首先,最右边的 `a = {n:2}` 执行,使 `a` 指向新对象;然后,这个新值 `{n:2}` 被赋给左边 `a.x` 中的 `a`。关键在于,左边的 `a.x` 在表达式求值时,其引用(指向原对象 `{n:1}`)已被锁定,因此赋值操作作用于原对象,而非新对象。作者用箭头图示清晰地展示了这一引用分裂现象。 文章最后还以一个函数中 `var a = b = 5` 导致 `b` 泄漏为全局变量的例子,延伸了连续赋值的另一个常见陷阱。整篇文章通过对一个细节的深度追问,澄清了连等赋值的真实执行路径与引用关系的变化。

IT 累计浏览 7,156

为什么++[[]][+[]]+[+[]]=10?

这篇讲的是JavaScript中一个令人费解的表达式++[[]][+[]]+[+[]]为何能成功计算并返回"10"。文章从这个看似荒诞的等式出发,带领读者深入理解JavaScript底层的一系列特性:一元加运算符的强制类型转换、数组的隐式字符串拼接,以及自增运算符的优先级。作者将这个天书般的表达式层层拆解,从+[]变为0,到数组访问和自增操作,最终揭示1与字符串"0"的拼接过程。最巧妙的是,文章没有停留在表面解释,而是清晰地展示了JavaScript在处理隐式转换时那些违反直觉却符合规范的行为,让原本晦涩的规则变得具体可感。这不仅是一次对特定表达式的解构,更是一次对语言本质特性的生动展示。

IT 累计浏览 1,872

消除JavaScript闭包的一般方法

这篇讲的是JavaScript闭包作为“被动解决方案”时的替代思路。作者指出,虽然闭包常被用于封装私有状态,但有时它源于语言本身的限制,导致代码结构难以扩展。 文章对比了两种处理“变量只初始化一次”这类需求的方法:一种是常见的闭包写法(立即执行函数创建私有变量),另一种则是作者推荐的“消除闭包”写法——通过构造函数和`this`引用来组织状态与方法。核心差异在于可扩展性:当需要为同一状态添加新操作时,闭包写法往往需要重写或嵌套更复杂的结构,而基于构造函数的方式只需简单添加新方法,更接近线性扩展。 作者强调,虽然闭包在特定场景下依然有用,但面对需要后续维护或扩展的需求时,考虑“消除闭包”的模式能减少不必要的重构,让代码更清晰、更易迭代。对于日常开发中那些因语言特性而“不得不”使用闭包的场景,这提供了一种更面向未来的写法选择。

IT 累计浏览 4,079

JavaScript实现的抛物线运动效果

这篇讲的是如何用JavaScript实现购物车常见的抛物线飞入动画效果。作者从天猫购物车的交互体验得到启发,参考了张鑫旭的抛物线运动原理,但觉得现有代码结构可以优化,于是重新实现了一版更简洁易用的方案。 核心实现基于抛物线数学公式,通过动态计算元素在每一帧的left和top偏移来模拟运动轨迹。作者的巧妙之处在于将整个过程封装成了一个可配置的`Parabola`对象,开发者只需通过参数设置目标偏移量(`offset`)、运动时长(`duration`)和曲线弧度(`curvature`),就能快速获得想要的运动效果。文章还提供了运动前后的回调函数接口,方便在动画结束时触发后续逻辑。 文末附有完整的在线Demo和清晰的参数说明表格,方便读者直接上手测试和理解每个选项的作用。这种从实际需求出发、重构成更符合个人习惯代码的思路,对前端开发者如何学习和改进现有方案也有不错的参考价值。

IT 累计浏览 2,565

JavaScript原型之路

这篇文章探讨了JavaScript中两种对象创建方式的差异与选择:传统的构造函数方法与更纯粹的原型(OLOO)方法。 作者从Frontend Masters的教程和一篇经典博文出发,对比了这两种路径。标准方法通过构造函数和原型链建立继承,是目前大多数教程和框架(如Angular)所要求的。而纯原型方法则利用`Object.create()`直接克隆对象,语法上更接近IO这类原生原型语言,显得更直接和动态。 然而,文章指出一个关键的现实考量:性能。测试显示,纯原型的实现在某些操作上可能比构造函数方式慢数十倍,这是JavaScript引擎优化导致的结果。此外,ES6引入的`class`语法本质上仍是构造函数的语法糖,并未改变原型的底层机制。 作者的结论反映了实践中的权衡:个人偏好纯原型的表现力和趣味性,但在追求性能的生产代码中,会继续采用构造函数方法,并期待未来能更广泛地使用ES6的类语法。

IT 累计浏览 2,346

XSS 前端防火墙 —— 可疑模块拦截

这篇讲的是,如何为XSS前端防火墙增加对可疑脚本模块的主动拦截能力。作者从上一代系统的不足出发——虽然能防简单的内联代码,但面对站外脚本加载和代码混淆时束手无策——提出了一套基于DOM监视的“可疑模块跟踪系统”。 文章的核心探索,围绕着HTML5提供的MutationEvent接口(包括DOMNodeInserted事件与MutationObserver)展开。通过大量实测代码,作者验证了这套方案在检测层面的有效性:MutationObserver能批量捕获静态脚本,DOMNodeInserted则对动态创建的元素响应更及时。更进一步,实验证明利用MutationObserver甚至可以在脚本加载前将其从DOM中移除,实现对静态脚本的拦截,但在动态脚本和跨浏览器一致性上遇到了限制。 作者并未止步于事件监听,而是深入分析了动态脚本创建的全过程,尝试了在属性赋值阶段进行拦截的更高阶思路。整篇文章并非提供一个完满的最终方案,而是详实记录了一次充满实验与思考的技术攻坚过程,展现了在浏览器环境限制下,为前端安全“打补丁”的真实挑战与巧妙尝试。

IT 累计浏览 2,464

JavaScript中双叹号(!!)作用

这篇讲的是 JavaScript 中一个常见但常被误解的操作符:双叹号(!!)。作者从日常编码中“var b = !!a;”这样的片段出发,解释了它的核心作用——将任何表达式强制转换为布尔值(true 或 false)。 文章不仅解释了 !! 如何通过两次逻辑取反来实现转换(第一次转为布尔值取反,第二次再反转回来),更深入地剖析了 JavaScript 的布尔转换规则。它对比了显式转换(如 parseInt、toString)和隐式转换(利用算术运算符或连接符),并明确了哪些值会被视为 false(如 false、undefined、null、0、""),哪些为 true。 通过 undefined 和 null 的具体示例,文章展示了 !! 的实用价值:它能清晰地将“未定义”或“空”状态归为 false,而将实际有值(哪怕是对象)的变量归为 true,为后续的条件判断提供了稳定、明确的依据。这本质上是对 JavaScript 弱类型特性的一种优雅应对。理解了这一点,开发者就能更自信地使用这种简写语法,编写出更简洁可靠的布尔判断逻辑。

IT 累计浏览 4,142

程序员的“横向发展”

这篇讲的是程序员除了深度与广度之外常被忽视的第三维度——“横向发展”。作者以亲身经历切入:初入职场时,他以为程序算出正确结果就完成了任务,却被项目经理批评未处理网络异常等现实问题。这让他意识到,学校里学的“技术化”编程与生产环境所需的“工业化”要求之间存在巨大鸿沟。 横向发展的核心,是让程序真正健壮可用。它不追求算法更快或语言更多,而是关注异常处理、持续监控、状态记录和故障可诊断性。作者观察到,许多程序员却讨厌这类工作,认为这是“找麻烦”,导致线上程序如同“豆芽菜”般脆弱——不记录运行状态,出了问题无法快速定位,陷入重复排障的循环。 文章指出,与其一味钻研新工具,不如先补上这关键一课:给程序加上“重心”,让它在真实复杂的世界中稳定站立。

IT 累计浏览 1,749

Javascript中的delete操作符

这篇文章深入剖析了JavaScript中`delete`操作符的行为,特别是它与变量、对象属性之间微妙而关键的互动关系。作者从一个核心矛盾出发:看似等价的全局变量和对象属性,在`delete`面前却表现迥异。 核心差异在于,通过`var`声明的变量和函数声明都带有`dontdelete`特性,因此它们无法被`delete`操作符移除。相比之下,直接在对象上创建的属性(无论是自定义的还是来自原型链的)则可以被轻松删除。文章通过一系列精准的代码示例展示了这种区别,例如`delete global`对`var global`无效,但`delete obj`却能移除一个未用`var`声明的全局变量(它本质上是`window`对象的属性)。 此外,文章还细致地探讨了`delete`操作符的几个边界情况:它无法删除原型(prototype)中定义的属性或对象自带的属性(如`length`);在`eval`执行的代码中,通过`var`声明的变量反而失去了`dontdelete`保护,可以被删除;而`delete`的返回值(`true`/`false`)更多反映了操作是否成功,而非属性是否真的存在。理解这些细节,对于避免JavaScript中关于删除操作的常见陷阱至关重要。

IT 累计浏览 1,827

浏览器特性检测工具:Modernizr

这篇文章从早期前端开发中常见的浏览器嗅探技术切入,引出了一个至今仍普遍存在的问题:面对CSS3和HTML5等新技术时,各浏览器的支持程度依然参差不齐。作者指出,依赖navigator.userAgent进行浏览器身份推断已不可靠,取而代之的是更直接的“特征检测”——即询问浏览器“你能做什么?”而非“你是谁?”。 Modernizr正是为此而生的JavaScript库,它能够快速检测数十项HTML5和CSS3特性的支持情况,其执行效率极高。文章重点阐释了Modernizr所依托的“渐进增强”开发理念,即从基础功能层开始,逐层添加增强体验。它不仅能帮助开发者清晰地了解当前环境,还能通过提供polyfill脚本,模拟缺失的HTML5功能(如地理定位),从而填补浏览器的功能漏洞。 此外,文章也贴心地介绍了Modernizr的两个版本:包含完整检测功能的development版适合学习和测试,而可按需定制的production版则能优化体积与性能。对于希望构建健壮、可适应不同环境的前端应用的开发者来说,Modernizr提供了一套可靠且高效的检测与应对工具箱。

IT 累计浏览 2,549

jQuery的编码标准和最佳实践

想用好jQuery,光会调用API可不够,编码习惯同样重要。这篇文章从实际项目角度出发,系统梳理了从加载到编码的全套最佳实践。 它首先指出,通过CDN加载jQuery并配合本地回退脚本,能兼顾性能与可靠性,同时强调使用裸协议URL和将脚本放置于页面底部以优化加载。在版本选择上,文章给出了清晰的建议:需兼容旧版IE则选择1.x系列,否则推荐使用最新版本,并务必指定完整版本号以避免意外。 变量管理方面,建议为jQuery对象添加$前缀以清晰区分,并及时缓存选择器结果以提升性能。选择器的优化是另一个重点,文章通过对比指出,优先使用ID选择器速度最快,使用类选择器时避免指定元素类型,在父级ID下查找子元素则推荐使用.find()方法,这些都能有效利用底层原生方法,绕过较慢的Sizzle引擎。 此外,文章还提醒了在多框架并存时避免$符号冲突的解决方案。这些实践总结起来,核心目标就是写出更健壮、高性能且易于维护的jQuery代码。

IT 累计浏览 11,185

7 天打造前端性能监控系统

这篇讲的是作者从一次公开承诺出发,用7天时间系统化梳理了如何从零搭建前端性能监控系统。文章并非纸上谈兵,而是将“性能影响公司收益”这一核心认知作为起点,引用了Google、Bing等巨头因延迟导致用户量与收入下降的具体数据,强调了监控的必要性。 接着,作者将实施过程拆解为7天,从认知到工具逐步推进。文中重点介绍了Page Speed、WebPagetest、PhantomJS等工具的实战用法,并特别指出了衡量用户体验的关键指标——白屏时间和首屏时间。文章最后落脚于,性能会随产品迭代而衰减,因此需要一套可持续的监控系统来量化问题、指导优化。 整个方案从“为何要做”切入,落到“具体用什么、怎么做”,为希望提升Web页面加载性能的开发者提供了一份清晰的行动蓝图。

IT 累计浏览 15,930

从输入 URL 到页面加载完成的过程中都发生了什么事情?

这篇文章详细拆解了“输入URL到页面加载”这个经典问题的前两个环节,其独特之处在于从最底层的硬件交互开始讲起,串联起了整个技术栈。 作者从用户触摸屏幕的那一刻说起,解释了电容触摸屏如何将物理动作转换为电信号,通过I²C总线传递给CPU。在CPU内部,信号经过晶体管和逻辑门电路,最终触发操作系统的中断机制。以Android为例,内核驱动将触摸事件写入设备文件,再由系统的GUI框架(如EventHub)分发给前台应用,也就是浏览器。 当事件到达浏览器后,文章揭示了其中一些不为人知的优化。例如,Chrome会根据用户输入历史进行“预预测”,在按下回车键之前就可能开始建立网络连接或渲染,以加速页面显示。文章后续部分显然还会继续剖析网络请求、DNS解析等后续流程。 这篇长文并非只为面试准备,而是旨在建立硬件、操作系统与软件之间的关联认知。作者在文中推荐了从《编码》到《Linux内核设计与实现》等多本经典著作,适合希望深入理解计算系统工作原理的读者。

IT 累计浏览 3,180

实现动态验证码的思路

这篇讲的是如何用JavaScript在前端实现动态GIF验证码。作者从传统静态验证码易被机器识别的问题出发,选择GIF作为载体——它兼容性好、体积小,能有效增加破解难度。 核心思路围绕三个任务展开:绘制旋转的文字、计算字符随机位置与角度、最终合成GIF图片。实现的关键技巧在于利用Canvas的`rotate`和`translate`API,并正确设置`textAlign: 'center'`与`textBaseline: 'middle'`,让文字能围绕自身的中心点旋转,而非默认的左下角,效果自然得多。 生成GIF环节则调用了gif.js库,作者特别指出其依赖Web Worker,需在HTTP环境下运行,并使用了`copy`模式来保留每一帧的独立图像数据。文章最终提供了完整的HTML示例代码与在线演示,从封装的`rotateText`函数到主流程逻辑一应俱全,是一次清晰的前端动画与图像生成实践。

IT 累计浏览 1,904

跨平台移动框架iMAG开发入门

这篇讲的是iMAG这个跨平台移动开发框架的入门上手。文章开宗明义,指出iMAG的核心优势在于“原生跨平台”——它采用XML加JavaScript的方式,将符合规范的代码解释成Android或iOS的本地原生控件来执行,因此拥有与原生应用一致的性能和用户体验。这一点将它明确区别于PhoneGap、JQuery Mobile这类Web技术封装的框架,更适合对性能要求较高的场景。 作者随后介绍了iMAG极为简洁的开发环境。开发者无需在本地搭建环境,只需在官网注册账号,安装手机客户端并使用在线工具,就能实时编辑XML并在手机上刷新查看效果,上手门槛极低。 文章通过一个“Hello World”示例,清晰展示了iMAG的XML结构。例如,使用封装页面,和<content>划分区域,而<list>控件则负责内容布局。这种结构会解释成各自平台的原生组件,比如Android上的TextView或iOS上的UILabel。文末还初步梳理了iMAG的控件体系,将其分为内容、表单和布局三类。总体来说,这篇文章为想快速构建高性能跨平台应用的前端或移动端开发者,提供了一个轻量且高效的新选项。</p> </div> </article> <article class="br-card br-plain-card br-plain-card--no-thumb"> <div> <div class="br-meta"> <span class="br-source-dot">IT</span> <span>累计浏览 1,930</span> </div> <h2 class="br-card-title"><a href="https://blogread.cn/it/article/6944?f=tg">jQuery 设置复选框选中状态的 BUG</a></h2> <p class="br-summary">这篇讲的是 jQuery 开发中一个容易被忽略的“坑”。作者从一个过去一直正常工作的全选/全不选功能代码突然失效说起——使用 `attr('checked')` 设置复选框状态,代码却只在第一次点击时生效,之后无论怎么点击都无效,让人非常困惑。 经过反复测试,作者发现问题出在 jQuery 版本兼容性上。在新版本中,`attr()` 方法对 `checked` 这类布尔属性的处理与浏览器原生属性不同步,导致状态无法被正确切换和识别。文章指出,正确的做法是使用 `prop('checked')` 来显式地设置 DOM 属性,或者采用更直接的原生 JS 遍历赋值,以确保所有 jQuery 版本都能兼容。 这个案例典型地揭示了 jQuery 早期版本中 `attr()` 和 `prop()` 在语义上的一个重要区别:前者侧重于 HTML 属性(attribute),后者侧重于 DOM 对象属性(property)。对于像 `checked`、`selected`、`disabled` 这类状态属性,直接操作 DOM 属性才是稳定可靠的方式。</p> </div> </article> <article class="br-card br-plain-card br-plain-card--no-thumb"> <div> <div class="br-meta"> <span class="br-source-dot">IT</span> <span>累计浏览 1,789</span> </div> <h2 class="br-card-title"><a href="https://blogread.cn/it/article/6942?f=tg">js 面向对象日历实现原理详解</a></h2> <p class="br-summary">这篇教程拆解了如何用JavaScript手写一个动态日历组件。作者从实际开发需求出发,比如表单日期选择场景,提出了一个清晰的实现思路:只需解决两个关键问题——确定目标月份第一天是星期几,以及该月总天数。 基于Date对象的方法,这两个问题都能被优雅地解决。文章提供的核心代码展示了一个自包含的calendar对象,它封装了获取日期信息、渲染日历网格以及处理月份切换的逻辑。巧妙之处在于,通过动态生成HTML和简单的CSS高亮,就能实现今日标记和月份导航等基础交互功能。 整体来看,文章将万年历这一常见组件的原理讲得透彻且可操作。这种面向对象的实现方式也让代码结构清晰,便于根据业务需求扩展样式或功能。对于想理解DOM操作与日期API结合应用的前端学习者,这篇提供完整代码和在线演示的教程,是一个不错的实践起点。</p> </div> </article> <article class="br-card br-plain-card br-plain-card--no-thumb"> <div> <div class="br-meta"> <span class="br-source-dot">IT</span> <span>累计浏览 2,064</span> </div> <h2 class="br-card-title"><a href="https://blogread.cn/it/article/6930?f=tg">基于jQuery的简易手风琴切换插件</a></h2> <p class="br-summary">作者在项目需要手风琴效果时,对比了几个现有jQuery插件,觉得它们相对笨重,于是自己动手写了一个更轻量、脉络清晰的版本。这篇讲的就是这个自制插件的实现思路和具体用法。 插件的核心思路很直接:将所有切换元素绝对定位在容器内,通过计算容器宽度与单个元素宽度的差值,动态分配每个元素的初始位置。当鼠标触发事件时,根据当前激活元素的索引,重新计算并动画所有元素的 left 值,从而实现展开收起的手风琴效果。 实现上考虑得比较周全。它支持通过参数配置鼠标事件类型(如mouseover或click)、默认展开项、动画间隔以及缓动函数(需配合jQuery.easing)。作者在代码中添加了详细注释,清晰说明了每个参数的作用和整体逻辑。 调用方式遵循标准jQuery插件模式,引入后只需一行代码即可启用。作者还提供了在线样例演示,帮助直观理解效果。这个插件适合那些需要轻量级手风琴交互,并且希望对实现细节有完全掌控的项目。</p> </div> </article> <article class="br-card br-plain-card br-plain-card--no-thumb"> <div> <div class="br-meta"> <span class="br-source-dot">IT</span> <span>累计浏览 2,298</span> </div> <h2 class="br-card-title"><a href="https://blogread.cn/it/article/6927?f=tg">javascript运算符</a></h2> <p class="br-summary">这篇讲的是JavaScript里运算符的“脾气”。它不只是简单列举了+、-、==、===这些符号,而是深入拆解了它们背后的规则和容易踩坑的地方。 文章把运算符按算术、比较、逻辑、赋值等用途分门别类,然后着重讲了几个关键点:比如“+”号面对字符串时,就从“加法”变成了“拼接”;而“==”和“===”的区别,直接关系到比较时会不会自动做类型转换。这些细节在日常编码里稍不注意就会埋雷。 它还特别点出了运算符的结合性顺序——比如“++”放在变量前后的不同效果,这在实际循环或表达式中非常实用。同时,对于除法可能产生浮点数、模运算对非数字的处理等边缘情况,也都给出了明确的规则说明。 整体来说,这篇文章适合想理清JavaScript基础语法、避免低级错误的开发者。它把枯燥的语法点结合实际执行行为来讲,读起来能帮你建立起对这些运算符更清晰、更可靠的心理模型。</p> </div> </article> <nav class="br-pagination" aria-label="pagination"> <ul class="pagination pagination-sm"><li class="page-item"><a class="page-link" href="/it/tags/JavaScript">|<</a></li><li class="page-item"><a class="page-link" href="/it/tags/JavaScript/4">4</a></li><li class="page-item"><a class="page-link" href="/it/tags/JavaScript/5">5</a></li><li class="page-item"><a class="page-link" href="/it/tags/JavaScript/6">6</a></li><li class="page-item"><a class="page-link" href="/it/tags/JavaScript/7">7</a></li><li class="page-item active" aria-current="page"><span class="page-link">8</span></li><li class="page-item"><a class="page-link" href="/it/tags/JavaScript/9">9</a></li><li class="page-item"><a class="page-link" href="/it/tags/JavaScript/10">10</a></li><li class="page-item"><a class="page-link" href="/it/tags/JavaScript/11">11</a></li><li class="page-item"><a class="page-link" href="/it/tags/JavaScript/12">12</a></li><li class="page-item"><a class="page-link" href="/it/tags/JavaScript/13">13</a></li><li class="page-item"><a class="page-link" href="/it/tags/JavaScript/39">>|</a></li></ul> </nav> </section> <aside class="br-stack br-sidebar" aria-label="IT sidebar"> <section class="br-side-card"> <h2>近 3 天十大热文</h2> <ol class="br-rank-list"> <li><span class="br-rank">1</span><a href="https://blogread.cn/it/article/6319?f=hot3">Chrome和goagent的配置方法,你懂<small>近 3 天 96 浏览</small></a></li> <li><span class="br-rank">2</span><a href="https://blogread.cn/it/article/8694?f=hot3">AI Coding Agent 时代,我自己<small>近 3 天 78 浏览</small></a></li> <li><span class="br-rank">3</span><a href="https://blogread.cn/it/article/4088?f=hot3">浅谈MySQL索引背后的数据结构及算法<small>近 3 天 75 浏览</small></a></li> <li><span class="br-rank">4</span><a href="https://blogread.cn/it/article/8693?f=hot3">如何写好设计文档?<small>近 3 天 74 浏览</small></a></li> <li><span class="br-rank">5</span><a href="https://blogread.cn/it/article/8688?f=hot3">01 引言:软件工程范式的五十年之变<small>近 3 天 74 浏览</small></a></li> <li><span class="br-rank">6</span><a href="https://blogread.cn/it/article/8695?f=hot3">从”内容治理”到”行为治理”:中国智能体治理<small>近 3 天 70 浏览</small></a></li> <li><span class="br-rank">7</span><a href="https://blogread.cn/it/article/8690?f=hot3">美团海报生成 AIGC 技术创新与实践<small>近 3 天 65 浏览</small></a></li> <li><span class="br-rank">8</span><a href="https://blogread.cn/it/article/4015?f=hot3">程序员技术练级攻略<small>近 3 天 59 浏览</small></a></li> <li><span class="br-rank">9</span><a href="https://blogread.cn/it/article/8698?f=hot3">等了十年的 Go 链式管道,终于来了:seq<small>近 3 天 57 浏览</small></a></li> <li><span class="br-rank">10</span><a href="https://blogread.cn/it/article/8671?f=hot3">Loop Engineering 实践:我把<small>近 3 天 56 浏览</small></a></li> </ol> </section> <div class="br-ad-slot br-ad-sidebar"> <div id="_u7013829"></div> <script type="text/javascript"> (window.slotbydup = window.slotbydup || []).push({ id: "u7013829", container: "_u7013829", async: true }); </script> </div> </aside> </main> <footer class="br-shell" style="padding-top:12px;padding-bottom:20px;color:var(--br-muted);font-size:13px;"> <div style="text-align:center;line-height:1.9;"> © 2009 - 2026 by blogread.cn  ·  微博:<a href="https://weibo.com/blogread" target="_blank" style="color:var(--br-accent)">@IT技术博客大学习</a>  ·  <span class="news-footer-trust-links"><a href="/about.html">关于</a> · <a href="/contact.html">联系</a> · <a href="/privacy.html">隐私</a> · <a href="/disclaimer.html">内容来源声明</a></span>  ·  <a href="https://beian.miit.gov.cn/" target="_blank">京ICP备15002552号-1</a> </div> </footer> <!-- Bootstrap 5 bundle (含 Popper); 不再依赖 jQuery。 --> <script src="/plugins/bootstrap-5.3.8/js/bootstrap.bundle.min.js"></script> <script src="/assets/frontend-modern/reader-actions.js"></script> </body> </html>