zqkxlf.com Open in urlscan Pro
13.229.16.40  Public Scan

URL: https://zqkxlf.com/
Submission: On December 09 via api from US — Scanned from SG

Form analysis 0 forms found in the DOM

Text Content

立新技术博客


 * 首页
 * 归档

0%


JAVASCRIPT专题之类型判断(上)

发表于 2024-05-08 更新于 2024-05-09


前言

类型判断在 web
开发中有非常广泛的应用,简单的有判断数字还是字符串,进阶一点的有判断数组还是对象,再进阶一点的有判断日期、正则、错误类型,再再进阶一点还有比如判断
plainObject、空对象、Window 对象等等。

以上都会讲,今天是上半场。

阅读全文 »



JAVASCRIPT专题之类型判断(下)

发表于 2024-05-08 更新于 2024-05-09


前言

在上篇《JavaScript专题之类型判断(上)》中,我们抄袭 jQuery 写了一个 type
函数,可以检测出常见的数据类型,然而在开发中还有更加复杂的判断,比如 plainObject、空对象、Window 对象等,这一篇就让我们接着抄袭 jQuery
去看一下这些类型的判断。

阅读全文 »



JAVASCRIPT专题之数组去重

发表于 2024-05-07 更新于 2024-05-09


前言

数组去重方法老生常谈,既然是常谈,我也来谈谈。

阅读全文 »



JAVASCRIPT专题之跟着UNDERSCORE学防抖

发表于 2024-05-06 更新于 2024-05-09


前言

在前端开发中会遇到一些频繁的事件触发,比如:

 1. window 的 resize、scroll
 2. mousedown、mousemove
 3. keyup、keydown
    ……

为此,我们举个示例代码来了解事件如何频繁的触发:

我们写个 index.html 文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20


<!DOCTYPE html>
<html lang="zh-cmn-Hans">

<head>
    <meta charset="utf-8">
    <meta http-equiv="x-ua-compatible" content="IE=edge, chrome=1">
    <title>debounce</title>
    <style>
        #container{
            width: 100%; height: 200px; line-height: 200px; text-align: center; color: #fff; background-color: #444; font-size: 30px;
        }
    </style>
</head>

<body>
    <div id="container"></div>
    <script src="debounce.js"></script>
</body>

</html>


debounce.js 文件的代码如下:

1
2
3
4
5
6
7
8


var count = 1;
var container = document.getElementById('container');

function getUserAction() {
    container.innerHTML = count++;
};

container.onmousemove = getUserAction;


我们来看看效果:



从左边滑到右边就触发了 165 次 getUserAction 函数!

因为这个例子很简单,所以浏览器完全反应的过来,可是如果是复杂的回调函数或是 ajax 请求呢?假设 1 秒触发了 60 次,每个回调就必须在 1000 / 60
= 16.67ms 内完成,否则就会有卡顿出现。

为了解决这个问题,一般有两种解决方案:

 1. debounce 防抖
 2. throttle 节流

今天重点讲讲防抖的实现。

阅读全文 »



JAVASCRIPT专题之在数组中查找指定元素

发表于 2024-05-05 更新于 2024-05-09


前言

在开发中,我们经常会遇到在数组中查找指定元素的需求,可能大家觉得这个需求过于简单,然而如何优雅的去实现一个 findIndex 和
findLastIndex、indexOf 和 lastIndexOf 方法却是很少人去思考的。本文就带着大家一起参考着 underscore 去实现这些方法。

在实现前,先看看 ES6 的 findIndex 方法,让大家了解 findIndex 的使用方法。

阅读全文 »



JAVASCRIPT专题之函数记忆

发表于 2024-05-04 更新于 2024-05-09


定义

函数记忆是指将上次的计算结果缓存起来,当下次调用时,如果遇到相同的参数,就直接返回缓存中的数据。

举个例子:

1
2
3
4
5
6
7
8
9


function add(a, b) {
    return a + b;
}

// 假设 memorize 可以实现函数记忆
var memoizedAdd = memorize(add);

memoizedAdd(1, 2) // 3
memoizedAdd(1, 2) // 相同的参数,第二次调用时,从缓存中取出数据,而非重新计算一次


阅读全文 »



JAVASCRIPT专题之如何判断两个对象相等

发表于 2024-05-03 更新于 2024-05-09


前言

虽然标题写的是如何判断两个对象相等,但本篇我们不仅仅判断两个对象相等,实际上,我们要做到的是如何判断两个参数相等,而这必然会涉及到多种类型的判断。

阅读全文 »



JAVASCRIPT专题之解读V8排序源码

发表于 2024-05-02 更新于 2024-05-09


前言

v8 是 Chrome 的 JavaScript 引擎,其中关于数组的排序完全采用了 JavaScript 实现。

排序采用的算法跟数组的长度有关,当数组长度小于等于 10 时,采用插入排序,大于 10 的时候,采用快速排序。(当然了,这种说法并不严谨)。

我们先来看看插入排序和快速排序。

阅读全文 »



JAVASCRIPT专题之数组扁平化

发表于 2024-04-30 更新于 2024-05-09


扁平化

数组的扁平化,就是将一个嵌套多层的数组 array (嵌套可以是任何层数)转换为只有一层的数组。

举个例子,假设有个名为 flatten 的函数可以做到数组扁平化,效果就会如下:

1
2


var arr = [1, [2, [3, 4]]];
console.log(flatten(arr)) // [1, 2, 3, 4]


知道了效果是什么样的了,我们可以去尝试着写这个 flatten 函数了

阅读全文 »



JAVASCRIPT专题之递归

发表于 2024-04-30 更新于 2024-05-09


定义

程序调用自身的编程技巧称为递归(recursion)。

阅读全文 »

12

 * 文章目录
 * 站点概览



Admin


20 日志

京ICP备17008221号-1
© 2024 文章抓取自互联网,仅供学习使用
由 Hexo & NexT.Muse 强力驱动