首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
JavaScript 专题系列
冴羽
创建于2021-12-09
订阅专栏
旨在研究日常开发中一些功能点的实现,比如防抖、节流、去重、类型判断、拷贝、最值、扁平、柯里、递归、乱序、排序等,特点是研(chao)究(xi) underscore 和 jQuery 的实现方式。
等 509 人订阅
共28篇文章
创建于2021-12-09
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
2026 年 Web 前端开发的 8 个趋势!
2025 年是 Web 开发的分水岭。 之前 Web 开发领域一直发展迅速,几乎每天都有新的工具和框架涌现。 但到了 2025 年,这种发展速度直接呈指数级增长。 之所以有这种变化,很大程
JavaScript Date 语法要过时了!以后用这个替代!
1. 前言 作为一名前端开发工程师,你一定被 JavaScript 的日期处理折磨过。 这不是你的问题,是 JavaScript 自己的问题——它的 Date 功能真的很糟糕。 2. Date 的离谱
2025 年最火的前端项目出炉,No.1 易主!
1. 前言 快来看!JavaScript Rising Stars 公布了 2025 年 JavaScript 明星项目榜单。 此榜单根据 2025 年 GitHub 新增的星标数量,还建立了以下榜单
前端性能革命:200 行 JavaScript 代码实现 Streaming JSON
5 月的时候,React 的核心开发者 Dan 发表了一篇名为《Progressive JSON》 的文章,介绍了一种将 JSON 数据从服务器流式传输到客户端的技术,允许客户端在接收到全
你还在 for 循环里使用 await?异步循环得这样写
1. 前言 在循环中使用 await,代码看似直观,但运行时要么悄无声息地停止,要么运行速度缓慢,这是为什么呢? 本篇聊聊 JavaScript 中的异步循环问题。 2. 踩坑 1:for 循环里用
10 个被严重低估的 JS 特性,直接少写 500 行代码
前言 最近逛 Reddit 的时候,看到一个关于最被低估的 JavaScript 特性的讨论,我对此进行了总结,和大家分享一下。 Hi,我是冴羽,学习前端,欢迎围观我的“网页版朋友圈”、踏上“前端大佬
JavaScript 专题之花式表示 26 个字母
undefined + [] 相当于 undefined + "" 结果为"undefined"字符串。 这时候已经获得一个 undefined 字符串了,我们只用通过下标就可以取到对应的字母了。 是不是很有意思,然而这才只是个开始。 通过这种方式我们可以取到字母 a。 剩下的…
JavaScript专题系列20篇正式完结!
JavaScript 专题系列是我写的第二个系列,第一个系列是 JavaScript 深入系列。 JavaScript 专题系列共计 20 篇,主要研究日常开发中一些功能点的实现,比如防抖、节流、去重、类型判断、拷贝、最值、扁平、柯里、递归、乱序、排序等,特点是研(chao)究…
JavaScript专题之解读 v8 排序源码
v8 是 Chrome 的 JavaScript 引擎,其中关于数组的排序完全采用了 JavaScript 实现。 排序采用的算法跟数组的长度有关,当数组长度小于等于 10 时,采用插入排序,大于 10 的时候,采用快速排序。(当然了,这种说法并不严谨)。 我们先来看看插入排序…
JavaScript专题之乱序
乱序的意思就是将数组打乱。 嗯,没有了,直接看代码吧。 Math.random() - 0.5 随机得到一个正数、负数或是 0,如果是正数则降序排列,如果是负数则升序排列,如果是 0 就不变,然后不断的升序或者降序,最终得到一个乱序的数组。 看似很美好的一个方案,实际上,效果却…
JavaScript专题之递归
JavaScript 专题系列第十八篇,讲解递归和尾递归 定义 程序调用自身的编程技巧称为递归(recursion)。 阶乘 以阶乘为例: function factorial(n) { if (n == 1) return n; return n * factorial(n …
JavaScript 专题之函数记忆
JavaScript 专题系列第十七篇,讲解函数记忆与菲波那切数列的实现 定义 函数记忆是指将上次的计算结果缓存起来,当下次调用时,如果遇到相同的参数,就直接返回缓存中的数据。 举个例子: function add(a, b) { return a + b; } // 假设 m…
JavaScript专题之函数组合
JavaScript 专题系列第十六篇,讲解函数组合,并且使用柯里化和函数组合实现 pointfree 模式 需求 我们需要写一个函数,输入 'kevin',返回 'HELLO, KEVIN'。 尝试 var toUpperCase = function(x) { return…
JavaScript 专题之惰性函数
JavaScript 专题系列第十五篇,讲解惰性函数 需求 我们现在需要写一个 foo 函数,这个函数返回首次调用时的 Date 对象,注意是首次。 解决一:普通方法 var t; function foo() { if (t) return t; t = new Date()…
JavaScript 专题之偏函数
JavaScript 专题系列第十四篇,讲解偏函数以及如何实现一个 partial 函数 定义 维基百科中对偏函数 (Partial application) 的定义为: In computer science, partial application (or partial …
JavaScript 专题之函数柯里化
JavaScript 专题系列第十三篇,讲解函数柯里化以及如何实现一个 curry 函数 定义 维基百科中对柯里化 (Currying) 的定义为: In mathematics and computer science, currying is the technique o…
JavaScript 专题之如何判断两个对象相等
JavaScript 专题系列第十二篇,讲解如何判断两个参数是否相等 前言 虽然标题写的是如何判断两个对象相等,但本篇我们不仅仅判断两个对象相等,实际上,我们要做到的是如何判断两个参数相等,而这必然会涉及到多种类型的判断。 相等 什么是相等?在《JavaScript专题之去重》…
JavaScript专题之jQuery通用遍历方法each的实现
JavaScript 专题系列第十一篇,讲解 jQuery 通用遍历方法 each 的实现 each介绍 jQuery 的 each 方法,作为一个通用遍历方法,可用于遍历对象和数组。 语法为: jQuery.each(object, [callback])回调函数拥有两个参数…
JavaScript专题之学underscore在数组中查找指定元素
JavaScript专题系列第十篇,讲解如何从数组中查找指定元素,并且跟着 undersocre 实现 findIndex 和 findLastIndex、sortedIndex、indexOf 和 lastIndexOf 前言 在开发中,我们经常会遇到在数组中查找指定元素的需…
JavaScript 专题之数组扁平化
JavaScript 专题系列第九篇,讲解如何实现数组的扁平化,并解析 underscore 的 _.flatten 源码 扁平化 数组的扁平化,就是将一个嵌套多层的数组 array (嵌套可以是任何层数)转换为只有一层的数组。 举个例子,假设有个名为 flatten 的函数可…
下一页