二叉树
先序遍历 abdgcefh 中序遍历 dgbaechf
根据先序遍历可以得到根节点为a,根据中序遍历得到dgb为左子树,echf为右子树,根据先序遍历与中序遍历分别为bdg和dgb,同理根节点为b,左子树为dg,无右子树。依次类推。得到如下树图
a b c d e f g h
快速排序
//快速排序的代码
function quickSort(array){
if(array.length < 2){
return array;
}
var leftArr = [],
rightArr = [],
flag;
flag = array[0];
for(var i = 1, len = array.length; i < len; i++){
if(array[i] < flag) {
leftArr.push(array[i]);
}else if(array[i] > flag) {
rightArr.push(array[i]);
}
}
return quickSort(leftArr).concat([flag], quickSort(rightArr));
}
这个子数组都只有一个元素,而你知道如何对这些数组进行排序。现在你就知道如何对包含三个元素的数组进行排序了,步骤如下。
(1) 选择基准值。
(2) 将数组分成两个子数组:小于基准值的元素和大于基准值的元素。
(3) 对这两个子数组进行快速排序。
bootstrap栅格系统的前缀名
网格行为 | 一直是水平的 | 以折叠开始,断点以上是水平的 | 以折叠开始,断点以上是水平的 | 以折叠开始,断点以上是水平的 |
---|---|---|---|---|
最大容器宽度 | None (auto) | 750px | 970px | 1170px |
Class 前缀 | .col-xs- | .col-sm- | .col-md- | .col-lg- |
列数量和 | 12 | 12 | 12 | 12 |
最大列宽 | Auto | 60px | 78px | 95px |
间隙宽度 | 30px(一个列的每边分别 15px) | 30px(一个列的每边分别 15px) | 30px(一个列的每边分别 15px) | 30px(一个列的每边分别 15px) |
可嵌套 | Yes | Yes | Yes | Yes |
偏移量 | Yes | Yes | Yes | Yes |
列排序 | Yes | Yes | Yes | Yes |
h5新增的一些常用标签
标签名 | 用途 |
video | 视频 |
audio | 音频 |
canvas | 标记位图区域 |
svg | 矢量图区域 |
code | 代码区域 |
figure | 和文档有关的图例 |
figcaption | 图例的说明 |
datalist | 提供给其他控件的预定义选项 |
embed | 嵌入的外部资源 |
nav | 导航 |
header | 头部 |
footer | 页脚 |
article | 文章 |
aside | 侧边栏 |
section |
html语义化
为什么要语义化?
-
有利于SEO,有助于爬虫抓取更多的有效信息,爬虫是依赖于标签来确定上下文和各个关键字的权重。
-
语义化的HTML在没有CSS的情况下也能呈现较好的内容结构与代码结构
-
方便其他设备的解析
-
便于团队开发和维护
不允许写结束标签的元素
br、hr、img、input、link、meta、base、param、area、col、command、embed、keygen、source、track、wbr
关于contenteditable的继承问题
将静态资源放在独立域名下的优点
优点:
- 启用新的一级域名,每次请求浏览器不会携带cookie。
- 静态资源与动态内容分离,有利于部署于CDN。
- HTTP协议对同一个域名的同时下载线程数有限制。主要是为了优化下载速度,防止同一域名下下载线程数过多,导致下载速度变慢。
- 静态资源独立部署,为全局产品服务。
- 有利于最大化利用客户端缓存。
angular的双向绑定
双向绑定是新的前端框架中频繁出现的一个新词汇,也是mvvm的核心原理。