360笔试
1. CSS高度塌陷问题
在文档流中,父元素的高度默认被子元素的高度撑开的。但如果子元素设置浮动,则脱离文档流,父元素高度塌陷。
根据W3C标准,页面中元素都有一个隐含属性BFC(Block Formatting Context块级格式化上下文),该属性可以设置打开或关闭,默认是关闭的。
当开启元素的BFC时,元素具有以下特征:
- 父元素的垂直外边距不会和子元素重叠
- 开启BFC的元素不会被浮动元素所覆盖
- 开启BFC的元素可以包含浮动的子元素
如何开启元素的BFC:
- 设置该元素的overflow属性为非visible的属性值
1
2
3overflow:hidden/scroll/auto
//除visible(默认值)以外的值将创建一个新的BFC - 在高度塌陷的父元素最后增加一个空白div元素,由于这个div没有浮动,所以它是可以撑开父元素的,对其清除浮动。但是会在页面中添加多余的结构。
- 可以通过after伪类向元素的最后添加一个空白的块元素,然后对其清除浮动,这样做和添加一个div的原理一样,可以达到一个相同的效果,而且不会在页面中添加多余的div,这是我们最推荐使用的方式,几乎没有副作用。
1 | .clearfix:after{ |
2. 请求打开用户设备麦克风的接口:
1 | navigator.mediaDevices.getUserMedia() |
3. “一个对象一次只能被一个事务使用”是发生死锁的哪个条件:互斥条件。
产生死锁的四个必要条件:
- 互斥条件:一个资源每次只能被一个进程使用。
- 占有且等待:一个进程因请求资源而阻塞时,对已获得资源保持不放。
- 不可强行占有:进程已获得的资源,在未使用完之前,不可被强行剥夺。
- 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。
4. HTML5新元素
5. js焦点事件
浏览器加载完毕,input的type=text对象自动获取焦点的函数为 focus()
6. 下面哪个方法可以使对象不能删除或更改任何属性?
Object.freeze()
Object.isFrozen()
方法判断一个对象是否被冻结。
Object.isSealed()
方法判断一个对象是否被密封。
7. 将A元素拖拽并放置到B元素中,A元素会被触发什么事件?
ondragstart
1.ondragstart
事件:当拖拽元素开始被拖拽的时候触发的事件,此事件作用在被拖曳元素上
2.ondragenter
事件:当拖曳元素进入目标元素的时候触发的事件,此事件作用在目标元素上
3.ondragover
事件:拖拽元素在目标元素上移动的时候触发的事件,此事件作用在目标元素上
4.ondrop
事件:被拖拽的元素在目标元素上同时鼠标放开触发的事件,此事件作用在目标元素上
5.ondragend
事件:当拖拽完成后触发的事件,此事件作用在被拖曳元素上
8.jQuery选择器
选择器 | 实例 | 选取 |
---|---|---|
:eq(index) |
$("ul li:eq(3)") |
列表中的第四个元素(index 从 0 开始)` |
:gt(no) |
$("ul li:gt(3)") |
列出 index 大于 3 的元素 |
:lt(no) |
$("ul li:lt(3)") |
列出index小于3的元素 |
9.电子邮件是公司之间信息交流的主要方式之一,支持收信服务的协议是POP3/IMAP/SMTP
10.FTP协议Port模式(主动)下,客户端与服务器进行控制链接建立时,客户端会向服务器的端口(21)发起连接
11.在企业网中客户端经常通过DHCP协议获取IP地址,DHCP协议使用传输层的协议是UDP
12.html5 的正确doctype是<!DOCTYPE html>
13.IP数据报
- 标识(16位):同一数据报的分片使用同一标识。
- 标志(3位):只有2位有意义x_ _
中间位DF(Don’t Fragment):DF=1,禁止分片 DF=0,允许分片
最低位MF(More Fragment):MF=1,后面“还有分片” MF=0,代表最后一片/没分片
14.P问题,NP问题,NPC问题
循序渐进,娓娓道来
15.分治法能够解决的问题具有的性质是:
- 问题的规模缩小到一定的程度就可以容易解决。
- 问题可以分解为若干个规模较小的相同问题,即该问题具有最优子结构。
- 该问题分解出的子问题的解可以合并为该问题的解。
- 各个子问题相互独立,不包含公共的子问题。
16. 克隆节点cloneNode(deep)
<div id="div1" >
<div id="div2">
<div id="div3"></div>
</div>
</div>
<script>
var obj = document.getElementById("div1")
var nodeElement = obj.cloneNode(false)
// 这里的false是指 非 深复制 只复制此节点div1 不包括里面的div2 div3
</script>
17.工厂模式
--- 本文结束 The End ---