• 快速排序

    x为基准值可以把小于 x 的部分当成二叉树中的左子树,大于 x 的部分当成二叉树的右子树。等于 x 的部分当成二叉树的根结点。 对根节点进行处理就是将根节点放到对应的位置 左子树的根节点是左部分的基准值右子树的根节点是右部分的基准值 二叉树遍历 处理...
  • 轮播图

    布局: 一个显示图片窗口,不显示超过显示窗口的图片 一个水平显示图片的imgBox 一个图片位置标记 一个左右切换的按钮 功能: 打开网页自动切换图片,位置标记也相应改变 点击位置标记切换到对应图片 点击左右按钮进行图片切换 进入图片...
  • 宏任务和微任务

    使用asyc await和promise的then的区别 如果不使用then,则promise执行完之后将没有回调函数可以放入微任务队列,从而永远也不能得到promise返回的值 使用await的时候,异步函数会在主线程被挂起,然后执行接下来的脚本,...
  • 同步执行异步代码与异步执行同步代码

    执行的同步异步与代码的同步异步是不同的。settimeout是异步代码,执行的是异步的任务,但是这个任务是同步执行的,而settimeout里面的回调函数是异步执行的,但是这个回调函数可能是同步代码也可能是异步代码,执行的时候可能是执行的同步任务,也...
  • 用完全二叉树实现堆

    最小堆的情况二叉树顶部为最小值sink方法:值sink的时候要将值放到最小索引的位置,默认要sink的节点的索引是最小值所在的索引(这样防止了子节点不存在的情况),然后节点和它的左右节点比大小,然后得到最小索引的位置,最后值会和最小索引位置的值进行交...
  • 网络协议

    OSI参考模型 七层 (参考,并分都要按照这个来做,只是将协议按照功能分了层)iso将进行网络通信的协议根据底层到上层进行分层,每一层的协议指明了当前层的作用。(协议分层)分层并非绝对,有的协议可以同时被划分到两个层。协议分层只是为了明确协议功能。 ...
  • 再探闭包

    123456789101112131415function apple () { var count = 0 function output () { console.log(count) } fruit(...
  • vue.js数组使用push等方法时的监听

    js的array是引用数据类型,以地址形式赋值给变量,所以当使用push等方式对array进行修改时,地址不变,所以不会触发set方法,所以不能向数组的依赖进行更新。所以通过一个伪造的array原型作为要被监听的array的原型,其中当被监听的arr...
  • 回调函数

    作为参数传给别的函数,在别的函数执行的时候,在别的函数的函数体中在稍后的某个合适的时间点被[某对象]回过来调用(不是被这个函数调用,而是被window或别的对象调用.)
  • Object.defineProperty

    彻底搞懂Object.defineProperty垃圾回收机制以及Object.definePropertyvue早期源码学习系列之一:如何监听一个对象的变化