{ 前端 }

  • HTML5 Canvas 基础

    | /

    <canvas> 是HTML5新增的元素,可以用于绘制图形,制作照片,创建动画。<canvas> 标签只是图形容器,它没有自己的行为,必须使用脚本来绘制图形。

    创建一个canvas

    1
    <canvas id="mycanvas" width="300" height="300"></canvas>
  • 堆排序解析及JavaScript实现

    | /

    什么是堆

    在计算机科学中,二叉树(英语:Binary tree)是每个节点最多只有两个分支(不存在分支度大于2的节点)的树结构。通常分支被称作“左子树”和“右子树”。二叉树的分支具有左右次序,不能颠倒。

    二叉树的每个结点至多只有二棵子树(不存在度大于 2 的结点),二叉树的子树有左右之分,次序不能颠倒。二叉树的第 i 层至多有 2i - 1 个结点;深度为 k 的二叉树至多有 2k - 1 个结点;对任何一棵二叉树 T,如果其终端结点数为 n0,度为 2 的结点数为 n2,则n0 = n2 + 1

  • 计数排序解析及JavaScript实现

    | /

    计数排序

    计数排序(Counting sort)是一种稳定的线性时间排序算法。

    计数排序使用一个额外的数组}C ,其中第i个元素是待排序数组 A 中值等于 i 的元素的个数。然后根据数组 C 来将 A 中的元素排到正确的位置。当输入的元素是 n0k 之间的整数时,它的运行时间是 Θ(n+k)。计数排序不是比较排序,排序的速度快于任何比较排序算法。

  • JS函数节流(throttle)与函数去抖(debounce)

    | /

    背景

    在浏览器 DOM 事件里面,有一些事件会随着用户的操作不间断触发。如:改变窗口大小(resize)、鼠标滚动(scroll)、鼠标移动(mousemove),如果把逻辑函数直接绑定到这些事件上,会严重影响性能,再比如把ajax请求直接绑定到keydown事件上,将在用户输入时产生频率很高的ajax请求,给服务器造成不必要的响应压力。

  • CSS多行文本溢出省略显示

    | /

    文本溢出我们经常用到的应该就是text-overflow:ellipsis了,相信大家也很熟悉,但是对于多行文本的溢出处理确接触的不是很多,最近在公司群里面有同事问到,并且自己也遇到过这个问题,所以专门研究过这个问题。