盒模型

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...

Inheritance 继承

继承在那些基于类的语言, 继承是一种代码重用的形式, 如果一个新的类与一个已存在的类拥有大部分相同的功能, 那么就只需要说明两者之间的区别即可. 但是 JavaScript 并没有类的概念, 但是有很多代码重用的模式, 它可以模拟类的模式, 也可以支持其他的模式. 伪类在 C++ 和 Java中都是用 new...

JavaScript 方法集

JavaScript包含了一套小型的可用在标准类型上的标准方法集,主要是针对数组/正则及字符串的一些处理. Array array.concat(item…)concat 方法产生一个新的数组, 它包含的是一份 array 的浅复制并把参数 item 追加在其后. 如果 item 是数组, 那么这个数组的每个元...

JavaScript 深浅拷贝

浅拷贝浅拷贝只能拷贝顶层属性基本数据类型, 也就是如果父对象的属性是一个对象或数组, 那么子对象获取到的只是一个内存地址而不是一个真正的对象, 所以一旦修改父对象也会跟着被篡改. 1234567function shallowCopy ( parent ) { let o = {&#...

3D-Tags

3D 标签云练习canvas的3D效果, 球体算法, 正好IFE 的项目有就记录一下咯. 大概思路首先3D云其实就是一个球体, 在这个球体上平均分布各个点, 再把这些点的坐标赋给标签,计算一下 z 轴的大小, 最后通过改变字体的大小/ 透明度就可以模拟出立体的效果啦. 相关的一些公式及说明 球体 x/ y/ z...