liuqinh2s' blog

Do something cool!


  • 首页

  • 关于

  • 标签

  • 归档

  • 编程笔记

  • 新闻

  • 收藏

  • 思考

  • 前端面试

  • 力扣

  • 计算机科学

  • 量化交易

  • 英语

  • 导航

  • 阅读

  • 搜索

JavaScript如何实现节流和防抖函数

发表于 2023-12-05 | 更新于: 2025-07-24
字数统计: 373

节流:throttle
防抖:debounce

这两个是 JavaScript 开发中两个经常需要用到的工具函数,主要用于解决性能问题。节流的意思是针对某函数的连续调用,在一定时间内每隔一小段时间调用一次目标函数;防抖的意思是针对某函数的连续调用,只在一小段时间间隔后执行最后一次调用。

常用的场景有:浏览器高频 DOM 事件的回调函数,比如 scroll,mousemove,resize 等

阅读全文 »

JavaScript的var,let,const的区别

发表于 2023-11-23 | 更新于: 2025-07-24
字数统计: 631

首先var,let,const都是用于定义变量,这是它们的共同点,那么它们的区别呢?

其实还可以什么都不用,直接给变量赋值,这样的话,就是赋值给了全局对象(在浏览器上就是 window 对象):

1
2
a = 1;
console.log(window.a);
阅读全文 »

模拟实现JavaScript的bind方法

发表于 2023-11-22 | 更新于: 2025-07-24
字数统计: 918

bind 函数我们经常用到,主要用于换绑 this。其返回值是一个方法。此外我们还可以把一些参数固定下来,相当于封装了一个简易函数。

阅读全文 »

模拟实现JavaScript的apply和call方法

发表于 2023-11-21 | 更新于: 2025-07-24
字数统计: 810

apply 和 call 的相同点是:

  1. 都由一个函数调用
  2. 第一个参数都是原函数的执行环境 this

不同点是:

apply 的第二个参数接收原函数的所有参数,而 call 从第二个参数开始跟原函数一样是打散的

代码如下:

1
2
3
F(arg1, arg2, ...){}
F.apply(thisArg, [arg1, arg2, ...]);
F.call(thisArg, arg1, arg2, ...);

需要特别注意的是,如果是在非严格模式下,thisArg 如果为 null 或 undefined,就会被替换成全局对象(在浏览器中是 window);如果为原始值,就会被替换成原始值的的自动包装对象。

严格模式下,thisArg 传什么就是什么。

阅读全文 »

JavaScript对象的继承有哪几种

发表于 2023-11-20 | 更新于: 2025-07-24
字数统计: 1,198

javascript 高级程序设计中有写,对象的继承总共有六种:

  1. 原型链继承,子原型是父原型的一个实例
  2. 借用构造函数继承,子构造函数调用父构造函数
  3. 组合式继承(组合 1 和 2)
  4. 原型式继承
  5. 寄生式继承
  6. 寄生式组合继承(组合 3 和 5)
阅读全文 »
1234…18
liuqinh2s

liuqinh2s

89 日志
40 标签
RSS
GitHub Twitter
Links
  • liam
  • jiyanggg
  • 曾小乱 – 在描绘他的生活倒影
© 2025 liuqinh2s | Site words total count: 107.1k
由 Hexo 强力驱动
|
主题 — NexT.Pisces v5.1.4