Base64 是一种用 64 个可打印字符来表示任意二进制数据的二进制编码方法。可以用来处理和传输任意二进制数据。
Base64 最初是用在电子邮件中,为了满足电子邮件中不能直接使用非 ASCII 码字符的规定,用来传输二进制文件的。除此之外,它还可将任意不可打印的二进制数据,转化为可打印的文本编码,使用文本软件进行编辑(二进制流中有很多都是无法显示和打印的,比如 ASCII 中的控制字符,二进制文件 jpg、pad、exe 等,如果用记事本打开这些文件,会看到一堆乱码)。
Base64 是一种用 64 个可打印字符来表示任意二进制数据的二进制编码方法。可以用来处理和传输任意二进制数据。
Base64 最初是用在电子邮件中,为了满足电子邮件中不能直接使用非 ASCII 码字符的规定,用来传输二进制文件的。除此之外,它还可将任意不可打印的二进制数据,转化为可打印的文本编码,使用文本软件进行编辑(二进制流中有很多都是无法显示和打印的,比如 ASCII 中的控制字符,二进制文件 jpg、pad、exe 等,如果用记事本打开这些文件,会看到一堆乱码)。
大型的 CSS 项目中,往往会遇到 CSS 结构混乱、多人协作命名冲突、没有组件化无法复用…等等问题。为了解决这些问题于是引入 CSS 设计模式,用 BEM 来解决命名空间的问题,用 SMACSS 来解决代码分层问题,用 OOCSS 来解决解构复用问题。
科里化的关键是返回函数实现连式调用、参数收集、以及判断收集结束做最终调用。判断收集结束有很多办法:对比实参和形参的长度;判断实参的个数是否为 0(不传)。
1 | function currying(fn) { |
外循环控制几轮冒泡,内循环进行冒泡(比较大小交换位置,就像气泡一样从数组底部”冒泡”到数组的顶部)。
1 | function bubbleSort(arr) { |
类型动静态强调的是静态类型检测,类型强弱强调的是隐式类型转换,JavaScript 是一门动态类型(dynamically typed)且弱类型(weakly typed)语言,既不对类型进行静态检测,又允许隐式类型转换。
1 | let foo = 42; // foo 是 number |
1 | 10 + ''; // number 转成了 string |
在 PC 端,除了数据可视化和中后台这样一些全屏设计场景需要适配,绝大多数的网页采用的都是固定尺寸设计,由于 1366+ 的屏幕尺寸大于常用的固定设计尺寸,网页按设计尺寸 1:1 还原即可,不需要考虑适配。而在移动端,由于屏幕尺寸大小不一,且采用全屏的设计风格,则需要做适配。
目前移动端端内主流适配方案有:
1 | * 流体式/弹性式; |
视口(viewport)代表当前可见的计算机图形区域。在 Web 浏览器术语中,通常与浏览器窗口相同,但不包括浏览器的 UI(菜单栏等)。一般我们所说的视口共包括三种:布局视口、视觉视口和理想视口,它们在屏幕适配中起着非常重要的作用。
像素是影像显示的基本单位,其表现为一个个小方格。在 GUI 客户端软件开发中,像素是布局的基础,对于一个客户端开发者来说理解它很重要。其实存在两种像素,此像素非彼像素。
1 | * 设备像素 |