美文网首页
2016/9/21 前端笔试题笔记

2016/9/21 前端笔试题笔记

作者: 四月的炮姐 | 来源:发表于2016-09-21 22:58 被阅读0次

    1. js实现语言继承的核心是 prototype
      subTyoe.prototype = new superType();
      通过创建一个superType实例来实现继承
    2. javascript 解析引擎在读取一个Object的属性的值时会沿着原型链向上找,如果没有找到,则该属性值为undefined
    3. 什么属性会让div脱离文档流?
    4. float float是半脱离 还可以有文字环绕效果
    5. absolute fix 完全脱离文档流 文字会跑到元素下面去
    6. 二叉排序树
    7. 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值
    8. 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值
    9. 它的左、右子树也分别为二叉排序树。
      就像这样

      求二叉排序树的平均查找长度
    10. 先构造二叉查找树
    11. (每层的个数x层数)/ 总个数
    12. HTML form 的enctype属性

    enctype 属性规定在发送到服务器之前应该如何对表单数据进行编码。
    默认地,表单数据会编码为 "application/x-www-form-urlencoded"。就是说,在发送到服务器之前,所有字符都会进行编码(空格转换为 "+" 加号,特殊符号转换为 ASCII HEX 值)

    enctype的属性值有三个
    application/x-www-form-urlencoded : 在发送前编码所有字符(默认)
    multipart/form-data : 不对字符编码。在使用包含文件上传控件的表单时,必须使用该值。
    text/plain : 空格转换为 "+" 加号,但不对特殊字符编码。

    1. 伙伴地址
      哈哈哈 一脸蒙蔽
      原来是Linux内存管理的一种方式
      原理不讲 讲点吧
      就是一种算法吧内存分成11个量级的链表
      分别是1,2,4,8,16,32,64,128,256,512,1024.
      就为了方便申请合适大的内存
      如果出现小的页面满了 就会找大的页面 比如我要找一个256的页面,满了就会找512,如果找到就会拿出256来用,剩下的256就会插入到256的链表中。
      下面将计算伙伴地址

      满足以下条件的两个块称为伙伴:
      两个快具有相同的大小,记作 b
      它们的物理地址是连续的
      第一块的第一个页框的物理地址是 2 * b * 2^12 的倍数

      举个具体题目的例子
      二进制地址为011011110000,大小为4(10进制数)和16(10进制数)块的伙伴地址分别为:
      怎么算呢
      我们先看大小为4的
      用这个地址除以24 我们知道2进制除以8就是减三个0
      发现可以整除
      那这个就是第一个框的地址 它的伙伴地址就是它+4
      就是011011110100
      然后再看大小是16的
      用这个地址除以2
      16 32是减5个0 发现不能整除 所以说他的伙伴地址是前面那一块的首地址
      就应该是-16 得011011100000 这个数明显就可以被32整除
      就这么简单。

    2. cookies的各种属性
      我们都知道cookies就是浏览器用来维持会话的一种方法,一段纯文本。
      那么cookies都有哪些属性呢

      1. expries cookie的过期时间
      2. domain 关联的域名 如果domain的域名和请求的不一致那就会被忽略
      3. path path的值会与url中的值进行比对 假如path = /blog 如果你url中有/blog 或者/blogxxxxx 都会触发cookie的发送
      4. secure 没有值只是一个标记 如果有这个标记那么只有一个请求通过SSL或HTTPS创建cookie才能被发到服务器
      5. HttpOnly 如果有这个标记那么客户端JS就无法用document.cookie来获取cookie
    3. Linux 查看进程号
      ps命令
      ps -ef |grep 进程名

    4. 正则表达式的元字符(常用的)

    • \d 匹配一个数字 等价于 [0-9]
    • \D 匹配一个非数字 等价于 [^0-9]
    • \s 匹配一个空白字符 等价于 [ \f\n\r\t\v]
    • \w 匹配包括下划线的任何单词字符 等价于[A-Za-z0-9_]
    • 大写就是非小写匹配的字符
    1. 浏览器内多标签页如何进行通信
    2. 使用localStorage
      先来介绍下localStorage这个东西
      因为cookie不适合大量数据的存储,所以有了localStorage
      对于不同的网站,数据存储于不同的区域,并且一个网站只能访问其自身的数据
      我们可以通过window.localStorage 来获得localStorage
      通过setItem() getItem() removeItem()来修改数据
      可以通过监听storage事件来监测localStorage数据的变化
      window.addEventListener("storage",handle_storage)
    3. 使用cookie
      一个浏览器的所有标签页都是可以共享持久cookie的,但是只有同源的标签页可以共享
    4. window.postMessage()
      有两个参数
      data : 要传递的数据 可以是js的任何类型或者可复制的对象
      orign : 目标窗口的源
      接受postMessage()的消息。
      监听message事件
    5. 使用window.name
      window对象有个name属性,该属性有个特征:即在一个窗口(window)的生命周期内,窗口载入的所有的页面都是共享一个window.name的,每个页面对window.name都有读写的权限,window.name是持久存在一个窗口载入过的所有页面中的。

    相关文章

      网友评论

          本文标题:2016/9/21 前端笔试题笔记

          本文链接:https://www.haomeiwen.com/subject/qrzaettx.html