笔试笔记

笔试笔记

Posted by EWL on March 14, 2018

二叉树

先序遍历 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的继承问题

w3c对于contenteditable的解释

将静态资源放在独立域名下的优点

优点:

  • 启用新的一级域名,每次请求浏览器不会携带cookie。
  • 静态资源与动态内容分离,有利于部署于CDN。
  • HTTP协议对同一个域名的同时下载线程数有限制。主要是为了优化下载速度,防止同一域名下下载线程数过多,导致下载速度变慢。
  • 静态资源独立部署,为全局产品服务。
  • 有利于最大化利用客户端缓存。

angular的双向绑定

双向绑定是新的前端框架中频繁出现的一个新词汇,也是mvvm的核心原理。

MVC MVVM MVP的差别–待续