2017今日头条前端笔试题(牛客网)


解析:   1.ul ol中只能嵌套li

      2. a中不能再嵌套a

      3.

<dl>
<dt>标题</dt>
<dd>内容1</dd>
<dd>内容2</dd>
</dl>

 


 


解析:datalist规定输入域的选项列表,通过option创建! keygen提供一种验证用户的可靠方法,密钥对生成器,私钥存于客户端,公钥发到服务器,用于之后验证客户端证书! output元素用于不同类型的输出!



解析:

  • a) 置换元素:浏览器根据元素的标签和属性,来决定元素的具体显示内容。 
    •   例如:浏览器会根据<img>标签的src属性的 值来读取图片信息并显示出来,而如果查看(x)html代码,则看不到图片的实际内容;<input>标签的type属性来决定是显示输入 框,还是单选按钮等。 (x)html中 的<img>、<input>、<textarea>、<select>、<object> 都是置换元素。这些元素往往没有实际的内容,即是一个空元素。
    •   置换元素在其显示中生成了框,这也就是有的内联元素能够设置宽高的原因。
  • b) 不可替换元素:(x)html 的大多数元素是不可替换元素,即其内容直接表现给用户端(如浏览器)。
    •   例如: <label>label中的内容</label> 标签<label>是一个非置换元素,文字label中的内容”将全被显示。

 


 

解析:

  • background-attachment有三个值,scroll是默认值,背景图像会随着页面其余部分的滚动而移动。   fixed当页面的其余部分滚动时,背景图像不会移动。   inherit规定应该从父元素继承 background-attachment 属性的设置。
  • background-origin属性规定 background-position 属性相对于什么位置来定位。
  • background-clip 属性规定背景的绘制区域。

 

 


 

解析:

  • display: none和visibility:hidden的区别就是visibility:hidden会保留元素的空间
  • repaint(重绘) ,repaint发生更改时,元素的外观被改变,且在没有改变布局的情况下发生,如改变outline,visibility,background color,不会影响到dom结构渲染。
  • reflow(渲染),与repaint区别就是他会影响到dom的结构渲染,同时他会触发repaint,他会改变他本身与所有父辈元素(祖先),这种开销是非常昂贵的,导致性能下降是必然的,页面元素越多效果越明显。
  • 所以display:none才会产生reflow
  • visibility:hidden只会出发repaint

 

解析:

  • 标准盒子模型 = margin + border + padding + content (content =  width | height)
  • IE盒子模型 = margin + content (content = border + padding + width | height)

      

 


 

解析:取完后两堆石头为0 0,4 4,8 8的必胜。如A取完为4 4,无论B怎么取,A都能保证为0 4,B再取,A就可以为0 0,就赢了。同理,A只要保证取完为8 8,就一定可以保证自己可以获得4 4,还可以一直往上推,12 12.....

 



 

解析:

  • http使用面向连接的TCP作为运输层协议,保证了数据的可靠传输。
  • http:80   https:443
  • TCP和UDP比较: 是否连接 TCP面向连接 UDP面向非连接 传输可靠性:TCP可靠 UDP不可靠 应用场合:TCP传输大量数据UDP 少量数据 速度:TCP慢 UDP快
  • http使用面向连接的TCP作为运输层协议,保证了数据的可靠传输。

  


 解析:https://segmentfault.com/a/1190000005884656


 解析:http://www.cnblogs.com/dolphin0520/p/3749259.html

http://anwj336.blog.163.com/blog/static/894152092010102685054689/

  1. 常见的页面调度算法
    1. 随机算法rand(Random Algorithm):
      1.   利用软件或硬件的随机数发生器来确定主存储器中被替换的页面。这种算法最简单,而且容易实现。但是,这种算法完全没用利用主存储器中页面调度情况的历史信息,也没有反映程序的局部性,所以命中率较低
    2. 先进先出调度算法(FIFO):
      1.   先进先出调度算法根据页面进入内存的时间先后选择淘汰页面,本算法实现时需要将页面按进入内存的时间先后组成一个队列,每次调度队首页面予以淘汰。它的优点是比较容易实现,能够利用主存储器中页面调度情况的历史信息,但是,它没有反映程序的局部性,因为最先调入主存的页面,很可能也是经常要使用的页面。
    3. 最近最少调度算法LFU(Least Frequently Used Algorithm ):
      1.   先进先出调度算法没有考虑页面的使用情况,大多数情况下性能不佳。根据程序执行的局部性特点,序一旦访问了某些代码和数据,则在一段时间内会经常访问他们,因此最近最少用调度在选择淘汰页面时会考虑页面最近的使用,总是选择在最近一段时间以来最少使用的页面予以淘汰。算法实现时需要为每个页面设置数据结构记录页面自上次访问以来所经历的时间
    4. 最近最不常用调度算法LRU(Least Recently Used Algorithm):
      1.   由于程序设计中经常使用循环结构,根据程序执行的局部性特点,可以设想在一段时间内经常被访问的代码和数据在将来也会经常被访问,显然这样的页面不应该被淘汰最近最不常用调度算法总是根据一段时间内页面的访问次数来选择淘汰页面,每次淘汰访问次数最少的页面。算法实现时需要为每个页面设置计数器,记录访问次数。计数器由硬件或操作系统自动定时清零
    5. 最优替换算法OPT(Optimal replacement Algorithm):
      1.   前面介绍的几种页面调度算法主要是以主存储器中页面调度情况的历史信息为依据的,他假设将来主存储器中的页面调度情况与过去一段时间时间内主存储器中的页面调度情况是相同的。显然,这种假设不总是正确的。最好的算法应该是选择将来最久不被访问的页面作为被替换的页面,这种算法的命中率一定是最高的,它就是最有替换算法。要实现OPT算法,唯一的方法就是让程序先执行一遍,记录下实际的页地址流情况。根据这个页地址流才能找出当前要被替换的页面。显然,这样做是不现实的。因此,OPT算法只是一种理想化的算法,然而,它也是一种很有用的算法。实际上,经常把这种算法用来作为评价其它页面调度算法好坏的标准。在其它条件相同的情况下,哪一种页面调度算法的命中率与OPT算法最接近,那么,它就是一种比较好的页面替换算法。

         

         


解析:稳定排序和不稳定排序 (7大排序的稳定性分析) http://www.cnblogs.com/codingmylife/archive/2012/10/21/2732980.html 稳定排序有:插入排序、冒泡排序、归并排序 不稳定排序:希尔排序、快速排序、选择排序、堆排序


 

解析:同名函数,后面覆盖前面

 


解析:

Readonly只针对input(text/password)和textarea有效,而disabled对于所有的表单元素有效,包括select,radio,checkbox,button等。

 D不应该是"true"而是true


 

 解析:js里样式设置直接把css写法的的“-”去掉,再改写为驼峰写法即可。


 

解析:

  1. A.主机IP设置有误的话,内网是无法联通的 
  2. B.没有设置局域网的网关的话, 在ping内网的时候,是无法ping通的。
  3. C.网关设置有误,不会影响内网的PING,内网只要保证IP在同一个网段就可以ping同。所以此时内网是可以ping通的。但是网关是两个网络之间的一扇门,要想跟外网ping通就必须又打开这扇门的钥匙即网关配置正确。
  4.  D.DNS配置是为的域名解析。跟ping不ping的通无关。

 


在Linux系统中, 哪个文件你可以存储用于创建用户目录的系统用户默认文件? :

  • /etc/skel

  


 

解析:

因为UDP要达到TCP的功能就必须实现拥塞控制的功能,而且是在路由之间实现,这个在底层明显是做不到拥塞控制的,在应用层也是做不到的,因为应用层之间和应用程序挂钩,一般只能操控主机的程序,而表示层是处理所有与数据表示及运输有关的问题,包括转换、加密和压缩,在传输层是不可能的,因为你已经使用了UDP协议,无法在本层转换它,只有在会话层.
        会话层(SESSION LAYER)允许不同机器上的用户之间建立会话关系。会话层循序进行类似的 传输层 的普通数据的传送,在某些场合还提供了一些有用的增强型服务。允许用户利用一次会话在远端的分时系统上登陆,或者在两台机器间传递文件。 会话层提供的服务之一是管理对话控制。会话层允许信息同时双向传输,或任一时刻只能单向传输。如果属于后者,类似于物理信道上的半双工模式,会话层将记录此时该轮到哪一方
 
 

 

解析:引入缓冲的主要原因包括:缓和CPU与I/O设备间速度不匹配的矛盾;减少对CPU的中断频率,放宽对中断响应时间的限制;提高CPU和I/O设备之间的并行性。所以采用缓冲技术,可减少对CPU的中断次数,从而提高系统效率。 

解析:

1、当你给WEB服务器接上网线的时候,它会自动发送一条ARP信息,使得接入网关能找的到它;网关上会形成一条类似:2c 96 1e 3c 
3e 9b - 192.168.1.123的MAC地址到IP地址的映射记录。
2、如用户在浏览器中输入域名,如本地DNS缓存中没有,必然会进行一次DNS查询,以确定该域名的IP地址。
3、HTTP。获得DNS对应的IP地址以后,使用HTTP协议访问web服务器(不考虑TCP三次握手建立连接的阶段)。
 

解析:

看到同事的电脑和登录qq都是直接通过IP地址实现的,但是访问公司的网站却出现了问题,唯一的不同是访问公司网站需要解析域名,所以可能是域名解析出现故障。

 


 


 

解析:

请求分段系统是在分段系统的基础上,增加了请求调段功能和分段置换功能所形成的分段式虚拟存储系统。分段式存储管理方式分配算法与可变分区的分配算法相似,可以采用最佳适应法、最坏适应法和首次适应法等分配算法。显然仍然要解决外碎片的问题。

  •   首次 适应分配算法: 这种算法按分区序号从空闲分区表的第一个表目开始查找该表, 把最先找到的大于或等于作业大小的空闲分区分给要求的作业 。然后,再按照作业的大小,从该分区中划出一块内存空间分配给作业,余下的空闲分区仍留在空闲分区表中。如果查找到分区表的最后仍没有找到大于或等于该作业的空闲区,则此次分配失败。 优点:优先利用内存中低址部分的空闲分区,而高址部分的空闲分区很少被利用,从而保留了高址部分的大空闲区。为以后到达的大作业分配大的内存空间创造了条件。缺点:低址部分不断被划分,致使留下许多难以利用的、很小的空闲分区。 
  • 循环 首次 适应分配算法: 这种算法是由最先适应分配算法经过改进而形成的。在为作业分配内存时,不再每次从空闲分区表的第一个表项开始查找,而是从上次找到的空闲区的下一个空闲区开始查找,直至找到第一个能满足要求的空闲区为止,并从中划分出一块与请求大小相等的内存空间分配给作业。为实现该算法,应设置一起始查找指针,以指示下一次开始查找的空闲分区,并采用循环查找方式。即如果最后一个空闲分区的大小仍不能满足要求,则返回到第一个空闲分区进行查找。 优点 :内存中的空闲区分布得更均匀,减少查找空闲分区的开销。 缺点 :系统中缺乏大的空闲分区,对大作业不利。
  • 最佳适应分配算法 :该算法从所有未分配的分区中挑选一个 最接近作业大小且大于或等于作业的空闲分区分配给作业 ,目的是使每次分配后剩余的碎片最小。为了查找到大小最合适的空闲分区,需要查遍整个空闲分区表,从而增加了查找时间。因此,为了加快查找速度,要求将所有的空闲分区,按从小到大递增的顺序进行排序。这样,第一次找到的满足要求的空闲分区,必然是最佳的。 缺点 :每次分配之后形成的剩余部分,却是一些小的碎片,不能被别的作业利用。因此,该算法的内存利用率是不高的。 
  • 最坏适应分配算法: 该算法从所有未分配的分区中挑选一个 最大的空闲分区分配给作业 ,目的是使分配后剩余的空闲分区足够大,可以被别的作业使用。为了查找到最大的空闲分区,需要查遍整个空闲分区表,从而增加了查找时间。因此,为了加快查找速度,要求将所有的空闲分区按从大到小递减的顺序进行排序。这样,第一次找到的空闲分区,必然是最大的。优点:最坏适应分配算法在分配后剩余的空闲分区可能比较大,仍能满足一般作业的要求,可供以后使用。从而最大程度地减少系统中不可利用的碎片。缺点:这种算法使系统中的各空闲分区比较均匀地减小,工作一段时间以后,就不能满足对较大空闲分区的分配要求。

 

解析:

# 管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。  

# 信号量( semophore ) : 信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共享资源时,其他进程也访问该资源。因此,主要作为进程间以及同一进程内不同线程之间的同步手段。   
# 消息队列( message queue ) : 消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。   
# 共享内存( shared memory ) :共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问。共享内存是最快的 IPC 方式,它是针对其他进程间通信方式运行效率低而专门设计的。它往往与其他通信机制,如信号两,配合使用,来实现进程间的同步和通信。   

# 套接字( socket ) : 套解口也是一种进程间通信机制,与其他通信机制不同的是,它可用于不同及其间的进程通信。
# 回调: 是一种编程机制。
 
 

 

解析:

IndexdDB 是 HTML5 的本地存储,把一些数据存储到浏览器(客户端)中,当与网络断开时,可以从浏览器中读取数据,用来做一些离线应用。

Cookie 通过在客户端 ( 浏览器 ) 记录信息确定用户身份,最大为 4 kb 。

url 参数用的是 get 方法,从服务器上获取数据,大小不能大于 2 kb 。

Session 是服务器端使用的一种记录客户端状态的机制 。

post 是向服务器传送数据,数据量较大。

local Storage 也是 HTML5 的本地存储,将数据保存在客户端中(一般是永久的)。

 


 


 

 


 

 

解析:

Object.keys(Object)
Array.filter(function)
Object是包含属性和方法的对象, 可以是创建的对象或现有文档对象模型 (DOM) 对象。
Object.keys(object)的返回值是 一个数组,其中包含对象的可枚举属性和方法的名称。
Array.filter(function)对数组进行过滤返回符合条件的数组。
Object.keys(data)的返回值为数组["a","b","c","d"],经过 filter(function(x) { return ; })过滤,返回值大于2的key的数组。x为返回数组的属性名称即“a"、"b"、"c"、“d”,则对应的属性值为data[x],比较语句为data[x]>2。

 

 

posted on 2016-08-04 16:40  杠子  阅读(2671)  评论(0编辑  收藏  举报

导航