240 发简信
IP属地:山西
  • 120
    node.js的事件循环

    在node中,事件循环表现出的状态与浏览器中大致相同。不同的是node中有一套自己的模型。node中事件循环的实现是依靠的libuv引擎。我们知道node选择chrome v...

  • 跳出预设,才能突破

    最近被一个很小的问题困了两天,事后想想不觉好笑,所以分享出来。 在用组件库的能力做表单校验的时候,我发现在触发一次校验后,后面表单就会自动校验,这本来也正常,但我尝试在校验后...

  • 求众数的JavaScript实现

    给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 1...

  • 原来console.log()还能这样玩

    如果给前端开发者最常用编程语句排名,console.log()一定名列前茅。但估计很多人对console.log()的认识还在只能简单的打印文本信息而已。但其实console...

  • 120
    从一道题谈 JavaScript 的事件循环

    注:本篇文章运行环境为当前最新版本的谷歌浏览器(72.0.3626.109)最近看到这样一道有关事件循环的前端面试题: 这道题主要考察的是事件循环中函数执行顺序的问题,其中包...

  • 120
    关于(a==1&&a==2&&a==3)=true问题的思考

    这里考核的其实是非严格相等运算符==的原理,下面是摘自MDN的解释。 相等操作符比较两个值是否相等,在比较前将两个被比较的值转换为相同类型。在转换后(等式的一边或两边都可能被...

  • 使用迭代的方式实现flatten函数

    写一个flatten函数,实现扁平化数组的效果。比如: let arr = [1, 2, [3, 4, 5, [6, 7], 8], 9, 10, [11, [12, 13]...

  • 120
    深入理解浏览器的缓存机制

    一、前言 缓存可以说是性能优化中简单高效的一种优化方式了。一个优秀的缓存策略可以缩短网页请求资源的距离,减少延迟,并且由于缓存文件可以重复利用,还可以减少带宽,降低网络负荷。...

  • 实现js中new的功能

    首先看看new具有哪些功能: 创建一个对象,对象的原型指向构造函数的prototype。 构造函数里的this指向的就是这个对象。 执行构造函数里的语句。 但还要考虑一点,构...

  • 集合的javascript实现

    集合是由一组无序且唯一(即不能重复)的项组成的。这个数据结构使用了与有限集合相同的数学概念,但应用在计算机科学的数据结构中。ES6也有原生Set类的实现。集合李包含下面这些方...

  • 链表的javascript实现

    链表数据结构 链表存储有序的元素集合,但不同于数组,链表中的元素在内存中并不是连续放置的。每个元素由一个存储本身的节点和一个指向下一个元素的引用(指针)组成。下图展示了一个链...

  • 队列的JavaScript实现

    队列的结构特点 队列是遵循FIFO(First In First Out,先进先出,也称为先来先服务)原则的一组有序的项。队列在尾部添加新元素,并从顶部移除元素。最新添加的元...

  • 栈的javascript实现和栈的应用

    栈数据结构 栈是一种遵从后进先出(LIFO)原则的有序集合。新添加的或待删除的元素都保存在栈的同一端,称作栈顶,另一端就叫栈底。在栈里,新元素都靠近栈顶,旧元素都接近栈底。 ...

  • 职责链模式

    职责链模式的定义是:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系,将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。 有这样一...

  • 用享元模式写一个文件上传控件

    享元(flyweight)模式是一种用于性能优化的模式,“fly”在这里是苍蝇的意思,意为蝇量级。享元模式的核心是运用共享技术来有效支持大量细粒度的对象。 如果系统中因为创建...

  • 模板方法模式

    模板方法模式是一种只需使用继承就可以实现的非常简单的模式。模板方法模式由两部分结构组成,第一部分是抽象父类,第二部分是具体的实现子类。通常在抽象父类中封装了子类的算法框架,包...

  • 组合模式实现文件夹操作

    组合模式如果运用得当,可以大大简化客户的代码。一般来说,组合模式适用于以下这两种情况。 表示对象的部分-整体层次结构。组合模式可以方便的构造一棵树来表示对象的部分-整体结果。...

  • 发布-订阅模式

    发布—订阅模式又叫观察者模式,它定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知。它有两个应用场景: 可以广泛应用于异步编程中,替...