事件

JavaScript 和 HTML 交互是通过事件实现, 而事件处理程序订阅事件从而执行相应的操作. 事件流事件流描述的是 从页面接收事件的顺序.事件冒泡: 从最具体的元素到最不具体的元素(从内到外); — IE事件捕获: 从最不具体的元素到最具体的元素(从外到内); — NetscapeDOM 事件流: 先捕获...

Flex 弹性盒子

Flex 是 Flexible box 的缩写(弹性布局), 用来为盒模型提供最大灵活性的布局, 更为方便的实现响应式布局. 如何使用 Flex任何一个容器都可以指定为一个 Flex 布局. 12345678910111213.box { display: flex;}/* 行内元素 ...

闭包和高阶函数

这一篇笔记是为正式开始学习 javadcript 设计模式做铺垫,由于许多设计模式都用到了闭包和高阶函数来实现, 所以了解这两个知识点也是必要的. 闭包闭包简单的来说是函数与函数之间的桥梁, 让一个函数有权访问另一个函数作用域里的变量. 定义说起来还是很生涩的, 要理解闭包我们需要先知道变量的作用域以及变量的生...

base64 转 blob

12345678var arr = base64.split(','), mime = arr[0].match(/:(.*?);/)[1], bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n); while (n--) &#...

盒模型

CSS 盒模型 (Box Model), 包含的要素分别为: content/padding/border/margin. 标准盒模型 & 怪异盒模型盒模型分为W3C的标准盒模型和IE的标准盒模型. 标准盒模型content + padding+ border + margin 标准盒模型的 cont...

位运算符

在C或者其他语言数值的运算其实都是先将数值转换为二进制在做运算的,而位运算符就是直接进行二进制运算, 因此速度会非常快. 但是对于JavaScript来说, 执行环境一般接触不到硬件, 所以性能完全不能和其他语言相比. 不过作为了解还是需要的, 只对较为常见的位运算符作记录. 位运算 NOT位运算 NOT 由 (...

this/ call and apply

在 JavaScript 中, this关键字很容易使大家疑惑, 再加上 Function.prototype.call和Function.prototype.apply这两个方法的广泛运用, 所以很有必要弄清this的使用. this首先先说一下this的概念: this总是指向一个对象, 而这个对象具体是谁...

JavaScript 关于运算的小技巧

1. 使用 !! 操作符转换布尔值用于检查一个变量是否存在或者是有效值, 对变量使用 !!variable 来验证,只要变量的值为: 0, null, undefined, NaN都将返回 false, 反之返回 true. 如: 12345678910111213 class Foo { ...

JavaScript 模块化

使用函数和闭包来构造模块. 模块是一个提供接口却隐藏状态与现实的函数或对象.通过模块可以摒弃全局变量的使用, 模块模式的一般形式是: 一个定义私有变量和函数的函数;利用闭包创建可以访问私有变量和函数的特权函数.—— << JavaScript语言精粹 >> 1234567891011121...

Quick Sort

快速排序的实现, 参考资料阮一峰 思路快排法的思想, 分为以下三步 在数据集中, 选择任意一个数据作为参照物(一般取中间位置的元素)。 所有小于参照物的元素都放在左边,大于参照物的元素都放在右边。 对左右两边的子集递归, 至到排序完成。 例子 非原地快速排序 12345678910111213141516...