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


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

      2. a中不能再嵌套ahtml

      3.web

<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中的内容”将全被显示。

 


 

解析:segmentfault

  • 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的中断次数,从而提升系统效率。 

解析:

一、当你给WEB服务器接上网线的时候,它会自动发送一条ARP信息,使得接入网关能找的到它;网关上会造成一条相似:2c 96 1e 3c 
3e 9b - 192.168.1.123的MAC地址到IP地址的映射记录。
二、如用户在浏览器中输入域名,如本地DNS缓存中没有,必然会进行一次DNS查询,以肯定该域名的IP地址。
三、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。
相关文章
相关标签/搜索